終止任務是一個正在開發(fā)的功能.
這里的終止任務并不是指終止一個任務, 而是指一個無論運行結(jié)果如何最后都會被執(zhí)行的任務.
例子 15.27. 加入一個任務終止器
build.gradle
task taskX << {
println 'taskX'
}
task taskY << {
println 'taskY'
}
taskX.finalizedBy taskY
gradle -q taskX 的輸出
> gradle -q taskX
taskX
taskY
即使要終止的任務失敗了, 終止任務仍會繼續(xù)執(zhí)行.
例子 14.28. 當任務失敗時k
build.gradle
task taskX << {
println 'taskX'
throw new RuntimeException()
}
task taskY << {
println 'taskY'
}
taskX.finalizedBy taskY
gradle -q taskX 的輸出
> gradle -q taskX
taskX
taskY
另外, 如果要終止的任務并沒有被執(zhí)行 (比如上一節(jié)講的 up-to-date) 那么終止任務并不會執(zhí)行.
當構建創(chuàng)建了一個資源, 無論構建失敗或成功時這個資源必須被清除的時候, 終止任務就非常有用.
要使用終止任務, 你必須使用 Task.finalizedBy() 方法. 一個任務的實例, 任務的名稱, 或者任何 Task.dependsOn() 可以接收的輸入都可以作為這個任務的輸入.