2013-05-02 125 views
2

我有需要在Gradle的執行階段創建和執行任務。Gradle在執行階段,動態添加和執行任務

目前,我的生成任務中我確定,並創建我添加到taskContainer多個任務,使用:

tasks.add([name: "$taskName", type: "$taskType"], {...})

,然後在所有的任務都加到我執行它們按順序使用:

tasks["$taskName"].execute()

第一執行我收到以下錯誤:

>任務工件狀態緩存(... /。gradle/1.5/taskArtifacts)尚未鎖定。

我在做什麼錯了,是否有更好的方式來動態添加任務在執行過程中?

+0

爲什麼在執行過程中添加它們,而不是在構建的配置階段? – 2013-05-02 11:41:34

+0

@HieryNomus在配置階段執行此操作會使我的蜘蛛感覺刺痛,因爲在知道要構建多少個目標之前,我需要拉下資源。據我所知,調用'gradle tasks'會降低構建資源,這不是理想的或預期的。 – 2013-05-02 12:59:37

回答

2

必須在配置階段聲明所有任務和任務依賴關係。它們不能在執行階段添加。此外,不支持調用task.execute()(並會導致問題)。一個任務可以取決於對其他任務,但不能他們調用