Gradle leftshift <<需要任务的运算符?(这是多余的)

Ste*_*hen 6 gradle

我正在维护gradle代码,有时在定义任务时使用leftshift运算符<<.它工作正常,但从任务中省略<<运算符也是如此.

我理解左移位运算符的用途如何解释 什么是gradle中的运算符<<(双倍小于)?

所以......我得到了leftshift operator <<的目的.它是为任务添加一组操作,当任务运行时,它将按照输入任务的相同顺序执行操作.我得到它,我可以看到它正常工作.但是,省略<<将导致相同的行为.我可以看到在Gradle中使用<<有意义的地方,但在任务的情况下它似乎是多余的,应该省略.这是正确的还是lefthift操作员有用的目的.

例:

task Foo
task Bar

Foo << {
  println "foo action 1"
}

Foo << {
  println "foo action 2"
}

Bar  {
  println "bar action 1"
}

Bar  {
  println "bar action 2"
}
Run Code Online (Sandbox Code Playgroud)

Foo和Bar表现完全一样.

Mar*_*ira 21

left shift(<<)运算符是别名Task.doLast(),意味着它向任务添加了一个动作.任务操作是在执行任务时评估的一些代码.省略操作员只需配置任务即可.区别在于,一个在配置时运行(当Gradle运行构建脚本时),另一个在执行时运行.

基本上这个例子

task foo << { 
    println 'bar' 
}
Run Code Online (Sandbox Code Playgroud)

相当于

task foo {
    doLast {
        println 'bar'
    }
}
Run Code Online (Sandbox Code Playgroud)