gradle任务语法

时间:2016-01-20 11:47:05

标签: gradle

下面的代码片段有什么区别

ExecuteScalar()

task hello {
    println 'Hello world!'
}

2 个答案:

答案 0 :(得分:2)

Gradle有两个阶段:配置和执行。

在配置阶段,Gradle解析并执行build.script DSL代码。在解析过程中,Gradle会创建任务实例并执行其内部代码以进行配置。

在第一个示例中,println代码将在此配置过程中立即执行。

在第二个示例中,doLast闭包将添加到任务中。它只在执行阶段执行。

要查看差异,请修改任务:

task myTask {
   println 'hello'
   doLast {
      println 'hello again'
   }
}

输出

hello             <---- this was configuration phase
:myTask
hello again       <---- this was execution phase

答案 1 :(得分:1)

第一段代码应为:

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

这意味着:

  • 执行Gradle hello时,Gradle将使用查找任务 默认构建脚本build.gradle中的该名称。如果Gradle发现 任务,它使用Groovy引擎执行代码。
  • 大括号之间的每行代码(LOC)构成任务。
  • 双&lt;&lt; ,是定义Gradle任务的简写, 因此,长手是:

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

所以,第二段代码只是第一段代码的缩写。双&lt;&lt;&lt;&lt;是定义doLast任务块的简短形式