首页 > 解决方案 > 为运行和测试 Gradle 任务重用环境变量定义的方法?

问题描述

要求

在选定的 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}";

          :
}

问题...

但是,目前这行不通。关于我在课堂上的“方法签名”有各种各样的抱怨。取决于我为

gradle myproj:test

... 命令。我已经移动了它并使用了不同的方法,例如通过调用它doFirst()并查看来自 web 和 stackoverflow 的不同接收。这种方法大致遵循以下步骤:

早期的替代方案拒绝了“方法”,因为上下文中没有环境——这是有道理的,run任务必须是Exec典型的。我认为这里的关键问题是......

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

标签: gradleenvironment-variablesdry

解决方案


推荐阅读