2014-12-03 267 views
3

下面的代碼有什麼區別?Gradle任務配置與任務執行

task A { 
println 'configuration' 
} 

task B << { 
println 'action' 
} 

我相信這與評估有關。

即任務A始終評估 而其執行

+0

的可能重複[搖籃總是一個速記符號從任何任務println](http://stackoverflow.com/questions/23288470/gradle-always-does-println-from-any-task) – Opal 2014-12-05 07:48:24

+0

@Opal我開始在回答之前先查看重複(因爲確定這個解釋有以前曾多次給過),但當時找不到。此外,我猜這個標題使它更容易找到「相似」的問題... – roomsg 2014-12-05 14:56:36

+0

當然。但每個月都會出現與此完全相同的問題。現在是時候開始標記重複的問題了。 – Opal 2014-12-05 15:08:23

回答

4

時實際上任務B僅被評估:你的任務A的「調用println」聲明將在「配置」階段執行,而「調用println」聲明的B只會在'執行'階段執行(假設任務B通過任務依賴關係直接或間接運行)

欲瞭解更多信息,請登錄:http://www.gradle.org/docs/current/userguide/build_lifecycle.html。第56.2有一個很好的例子(也展示了第三階段,作爲「初始化」階段,BTW)

注:「< <」是「doLast」