是什麼的代碼下面剪斷的區別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