我是新手,但是我找不到我在这里描述的方式解决的这个问题:
1)我有一个任务versionUpdate
,它增加了许多文件中的内部版本号计数器。 (任务是任意的;我的问题是定义复杂的图依赖。)
2)如果versionUpdate
任务不是UP-TO-DATE,我只希望compile
执行。这是一个多项目构建,如果有任何子项目构建,则只需要执行一次。
3)versionUpdate
应该在compile
之前发生(因为它必须反射(reflect)当前的内部版本号),但是当且仅当compile
被添加到图中。也就是说,并非所有任务都应调用versionUpdate
,甚至compile
是有条件的。
目前,我只有以下内容:
[compileJava, compileTestJava]*.dependsOn versionUpdate
TL; DR 如何查询
compile
任务是否是最新的,并根据此信息修改任务图?
最佳答案
您可以通过向doFirst
任务添加compileJava
块来实现所需的目标:
compileJava.doFirst {
// your code to update versions goes here
}
仅当
compileJava
实际上有工作要做时,才会执行此操作
关于gradle - 仅当另一个任务不是最新时才运行任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35922106/