是什么的代码下面剪断的区别gradle这个任务语法
task hello {
println 'Hello world!'
}
和
task hello {
doLast {
println 'Hello world!'
}
}
是什么的代码下面剪断的区别gradle这个任务语法
task hello {
println 'Hello world!'
}
和
task hello {
doLast {
println 'Hello world!'
}
}
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
第一个代码片段应该是:
task hello << {
println 'Hello world!'
}
这意味着:
双< <,是定义一个摇篮任务的简写,所述 普通写法是这样的:
task hello {
doLast {
println 'Hello world!'
}
}
所以,代码的第二代码段只是一个代码第一片断的普通写法。双重< <是定义doLast任务块的简写形式
为什么*应*? – Opal