我的build.gradle(xy)檔案中有一個變數,有一個整數值和三個簡單任務。這些樹狀任務也被 "捆綁 "在第四個任務中,以便一個接一個地呼叫這三個任務。如果我呼叫任務callAll,任務callOne應該把int值加上5,任務callTwo也應該把int值加上5,但是在doLast塊中,最后任務callThree列印出值。它應該是10,但卻列印出了5,我猜是因為doLast塊的原因。但我不明白為什么,我宣告呼叫任務callThree時,它必須在任務callTwo之后運行callAll>。
當然,這個例子是我的一個更復雜的 build.gradle 的簡化版本。我怎樣才能在不改變這三個簡單任務的情況下獲得正確的輸出呢?
project.ext{
xy= 0
uj5u.com熱心網友回復:
一個Gradle構建運行三個不同的階段。初始化、配置和執行(檔案)。
在配置階段,將對專案及其任務進行配置。在這個階段:
callOne設定xy = xy 5。
callTwo不做任何事情 。
callThree列印println "xy : $xy"
任務在Gradle構建的執行階段被執行,這意味著:
任務在Gradle構建的執行階段被執行。
callOne什么也不做callTwo設定xy = xy 5callThree不做任何事情 。
5被列印出來,而不是10,因為你正在混合配置和執行階段。
callAll或多或少只是一個配置任務圖的自定義生命周期任務。就其本身而言,callAll不執行對其他任務的呼叫,因此在執行階段不做任何事情。
您可以通過將所有的任務動作包圍在 doFirst {} 或 doLast {} 塊中來獲得您想要的行為。
請看配置時間和執行時間以了解更多資訊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/318690.html
標籤:
下一篇:如何從我的表中獲取最后一條記錄?
