Gradle左移算子(<

问题描述 投票:1回答:1

快速提问,从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

gradle build.gradle
1个回答
0
投票

切换到使用doLast时使用<<

task CommonTask_doLast {
    doLast commonThingToDo
}

commonThingToDo已经是doLast的正确论据,它被包裹在你样本中的另一个Closure中。

© www.soinside.com 2019 - 2024. All rights reserved.