2
的build.gradle運行時
task hello (type: Copy) {
doLast {
println "print from within"
}
println "print from outside"
}
gradle這個-q你好
doLast {}封閉甚至沒有觸及。改變doLast到doFirst,我得到了相同的結果:
D:\>gradle -q hello
print from outside
沒有doLast或doFirst:
task hello (type: Copy) {
//doLast{
println "print from within"
//}
println "print from outside"
}
正常工作:
D:\>gradle -q hello
print from within
print from outside
這似乎只發生與複製類型的任務。你能幫忙澄清一下嗎?我使用gradle 2.4。
部分解釋了我實際上已經嘗試了另一個用例:在** doLast {} **閉包中將**和**添加到**中。源文件已經改變了內容,任務的目的基本上是更新目的地。我們怎樣才能做到這一點?看起來doLast {}不會在類型複製的任務中被觸及,無論如何。 – Heinz
由於'doLast'將在*執行時運行*在* configuration *階段中使用'into'和'from'時間,因此在'doLast'中同時放入'from'和'from'是沒有意義的'doLast'配置任何東西實在太遲了。在任務內使用'from'和'into',它將按預期工作。這似乎也需要閱讀有關gradle基礎知識。 [這裏](https://docs.gradle.org/current/userguide/build_lifecycle.html)的好起點 – Opal
我原來的帖子是專門提出一個關於「複製」類型任務的問題。我仍然感到困惑。這是一個** build.gradle **文件:'task mycopy(type:Copy){from'c:\ temp \ me.txt'into'd:/'}
task hello(){doLast {println'Hello ,我'}}'。當您運行** gradle build.gradle hello **時,** mycopy {} **中的代碼將不會運行,儘管它應該在配置階段運行。我做錯了什麼? – Heinz