我正在尝试使用“doFirst”方法在gradle中调用方法。我的代码看起来像
task nightlyBuild(type:MavenTask) {
ext.list = 'this should change'
doFirst {
ext.list = getList()
println ext.list
}
mvnCmdLine "clean deploy -am -amd ${ext.list}"
}
mvnCmdLine是一个为我调用maven的类中的方法(取决于操作系统)
输出看起来像这样
-pl com.blah.foo:bar
mvn clean deploy -am -amd this should change
我的问题是,当我运行它时,println ext.list会打印出我期望看到的内容,但是当maven命令执行时,它会显示“这应该改变”
似乎doFirst无法控制在变量外部重新分配新值。有一些特殊类型的回报吗?或者我不创建全局变量?
答案 0 :(得分:0)
我现在已经弄明白了。这些阶段非常重要。
因此配置在执行之前以及doFirst和doLast之前发生。所以逻辑应该看起来像
task nightlyBuild(type:MavenTask) {
ext.list = 'this should change'
doFirst {
ext.list = getList()
println ext.list
}
doLast {
mvnCmdLine "clean deploy -am -amd ${ext.list}"
}
}
基本上mvnCmdLine在配置阶段运行,并且在更改ext.list后没有运行。