我知道传递配置闭包和为任务定义操作之间的区别。我相信您不能在配置闭包中使用<<,因为这似乎是语法错误:

task wrong {
  << { println "From doLast" }
}

但。为什么在上述配置闭包中不能使用leftShift等效于<<?在更清晰的测试用例中,以下构建文件为什么不输出From leftShift - inside行?
defaultTasks 'tryout'

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

tryout.leftShift { println "From leftShift - outside" }

当然,这不是一个真正的问题,因为我可以简单地使用doLast。我只是想扩大我对Gradle的理解。谢谢!

最佳答案

与任务定义一起使用时,<<实际上是按位意义上的向左移而不是。它是doLast的简写。在gradle DSL中:

task hello << {
    println 'Hello world!'
}

与以下内容完全相同:
task hello {
    doLast{
        println 'Hello world!'
    }
}

关于gradle - Gradle任务上的doLast和leftShift之间有区别吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35386774/

10-10 18:45