Gradle在执行阶段,动态添加和执行任务

问题描述:

我有需要在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

必须在配置阶段声明所有任务和任务依赖关系。它们不能在执行阶段添加。此外,不支持调用task.execute()(并会导致问题)。一个任务可以取决于对其他任务,但不能他们调用