延迟为Gradle测试任务设置环境变量的正确方法是什么?

时间:2018-12-07 06:03:02

标签: gradle lazy-evaluation

在我们的构建中,我们在一个公共位置计算环境变量。

tasks.withType(Test) {
    environment << project.environmentVars
}

实际的变量当前急切地加载到其他构建脚本中:

ext.environmentVars = [:] as Map<String, String>
// ... setting many variables ...

某些设置需要调用命令以获取正确的值来插入,所以我想推迟工作。

我知道我可以做到:

tasks.withType(Test) {
    doFirst {
        environment << project.environmentVars
    }
}

但是我担心这可能会使任务没有将环境视为输入,因此不断变化的环境可能无法运行测试。

理想情况下,我想做的是:

tasks.withType(Test) {
    environment << { project.environmentVars }
}

但这当然是一个错误。

有正确的方法吗?

0 个答案:

没有答案