快速提问,从Gradle切换到doLast的5 +版本中不推荐使用leftShift,我注意到代码在doLast中的行为方式发生了变化。
在这里,我有一个非常简单的build.gradle如下:
def commonThingToDo = { task ->
println "Running ${task.name}"
}
task CommonTask << commonThingToDo
task CommonTask_doLast {
doLast {
commonThingToDo
}
}
从命令行运行gradle会产生以下结果。我的印象是我们现在可以使用左移运算符(<<)作为doLast方法的同义词,但即使构建成功,每种情况下的输出似乎也不同。
我有点困惑,如果有人能解释我做错了什么,我真的很感激。
$ gradle commonTask
> Task :CommonTask
Running CommonTask
BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
$ gradle CommonTask_doLast
> Task :CommonTask_doLast
BUILD SUCCESSFUL in 1s
1 actionable task: 1 executed
非常感谢,Shankar
切换到使用doLast
时使用<<
:
task CommonTask_doLast {
doLast commonThingToDo
}
commonThingToDo
已经是doLast
的正确论据,它被包裹在你样本中的另一个Closure中。