diff --git a/build.gradle b/build.gradle index 0eeddb5..089e004 100644 --- a/build.gradle +++ b/build.gradle @@ -64,22 +64,32 @@ subprojects { } } -task runApp(type: JavaExec) { +/** + * Запуск сервера. + * Для указания рабочей папки, указываем JVM параметр + * -DworkDir=path\to\workdir + * Если используется отдельная папка для имплементации логгера, то указываем + * -DlogImplDir=path\to\logimpldir + * Если необходимо передать дополнительные JVM параметры серверу, то указываем их с двойной "D", например: + * -DDspringConfig=spring.xml + * -DDlog4j.configurationFile=log4j2.xml + */ +task runServer(type: JavaExec) { main = 'mc.core.Main' - workingDir = (project.hasProperty("workDir") ? project.workDir : '.') + workingDir = System.getProperty("workDir", ".") subprojects.findAll().each{ prj -> classpath += prj.sourceSets.main.runtimeClasspath } - /* Uncomment, if your Log Implements are folder '{workDir}/log-impl' */ - //classpath += files(fileTree(dir: new File(workingDir, "log-impl"))) - /* Uncomment, if you used VM args */ - //jvmArgs = [ - // "-DspringConfig=spring.xml", - // "-Dlog4j.configurationFile=log4j2.xml" - //] + if (System.getProperty("logImplDir") != null) { + classpath += files(fileTree(dir: new File(System.getProperty("logImplDir")))) + } + + System.getProperties().stringPropertyNames().stream() + .filter{propName -> propName.startsWith("D")} + .forEach{propName -> jvmArgs += "-D" + propName.substring(1) + "=" + System.getProperty(propName)} ignoreExitValue = true }