要求 :
在选定的Gradle子项目中,我们要为run
,debug
,test
等任务重用环境变量定义。例如,我认为以下将是处理问题的自然方法?
myproj.gradle
test.dependsOn defineEnvironement( mainClass )
test.doFirst() {
workingDir = "${testFolder}";
}
run.dependsOn defineEnvironement( mainClass )
run.doFirst() {
workingDir = "${runFolder}";
}
在defineEnvironment()
或根项目中声明common.gradle
任务的地方,类似...
common.gradle
task defineEnvironement( type : JavaExec ) {
println "--> defineEnvironementVariables()"
environment "PROG_HOME", "${RUN_PATH}";
environment "PROG_CONFIG_PATH", "${RUN_PATH}/${cfgFolder}";
:
}
问题 (s)...
但是,目前暂时不起作用。关于我在课堂上的“方法签名”,有各种各样的抱怨。取决于我为
进行的变体形式gradle myproj:test
...命令。我已将其移动了一下,并使用了不同的方法,例如通过doFirst()
进行调用,并查看来自Web和stackoverflow的不同收据。这种方法大致遵循以下步骤:
早期替代方案拒绝了“方法”,因为上下文中没有环境-这很有意义,run
任务必须是Exec
类型。我认为这里的关键问题是...
如何将test
和run
任务传递给defineEnvironement
任务?
当然,这是常见的(最佳?)练习方法吗?
如果没有,重用defineEnvironement
步骤并且只需要在一个地方指定和更新它们的首选方法是什么?
很抱歉,这有点基本。我认为这种事情是大多数项目(希望)通过共享共同的定义/构建代码而通常要做的。