为Run和Test Gradle任务重用环境变量定义的方法?

时间:2018-07-09 04:43:17

标签: gradle environment-variables dry

要求

在选定的Gradle子项目中,我们要为rundebugtest等任务重用环境变量定义。例如,我认为以下将是处理问题的自然方法?

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类型。我认为这里的关键问题是...

  • 如何将testrun任务传递给defineEnvironement任务?

  • 当然,这是常见的(最佳?)练习方法吗?

  • 如果没有,重用defineEnvironement步骤并且只需要在一个地方指定和更新它们的首选方法是什么?

很抱歉,这有点基本。我认为这种事情是大多数项目(希望)通过共享共同的定义/构建代码而通常要做的。

0 个答案:

没有答案