仅当另一个任务不是UP-TO-DATE时才运行任务

时间:2016-03-10 16:32:29

标签: gradle

我是新手,但我无法通过我在这里描述的方式找到这个问题:

1)我有一个任务versionUpdate,它在一些文件中递增一个内部版本号计数器。 (任务是任意的;我的问题是关于定义复杂的图依赖性。)

2)如果versionUpdate任务不是UP-TO-DATE,我只希望compile执行。这是一个多项目构建,如果任何子项目构建,它只需要发生一次。

3)versionUpdate应该在 compile之前发生(因为它必须反映当前的内部版本号),但是当且仅当compile被添加到图形。也就是说,并非所有任务都应该调用versionUpdate,甚至compile也是有条件的。

目前,我只有以下内容:

[compileJava, compileTestJava]*.dependsOn versionUpdate

TL; DR 我如何询问compile任务是否为最新状态并根据此信息修改任务图?

1 个答案:

答案 0 :(得分:0)

您可以通过向doFirst任务添加compileJava块来实现您的目标:

compileJava.doFirst {
    // your code to update versions goes here
}

仅当compileJava实际有工作要做时才会执行此操作