在Gradle任务上doLast和leftShift的区别?

在Gradle任务上doLast和leftShift的区别?,gradle,groovy,Gradle,Groovy,我知道传递配置闭包和为任务定义操作之间的区别。我相信您不能使用,那么它是如何工作的呢?Groovy知道,因为您可以在Groovy中重载运算符,但在某些情况下它们并不相同。 task wrong { << { println "From doLast" } } defaultTasks 'tryout' task tryout { doLast { println "From doLast" } leftShift { println "From leftShift -

我知道传递配置闭包和为任务定义操作之间的区别。我相信您不能使用
,那么它是如何工作的呢?Groovy知道
,因为您可以在Groovy中重载运算符,但在某些情况下它们并不相同。
task wrong {
  << { println "From doLast" }
}
defaultTasks 'tryout'

task tryout {
  doLast { println "From doLast" }
  leftShift { println "From leftShift - inside" }
}

tryout.leftShift { println "From leftShift - outside" }
task hello << {
    println 'Hello world!'
}
task hello {
    doLast{
        println 'Hello world!'
    }
}