gradle - 仅当另一个任务不是最新时才运行任务

标签 gradle

我是新手,但是我找不到我在这里描述的方式解决的这个问题:

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/

相关文章:

android - Android Studio无法解决Gradle依赖关系

android-studio - Gradle 项目刷新失败 : Already finished

gradle - 使用 Gradle 4.3.1 找不到方法 compileOnly

gradle - SourceSet.compiledBy实际上做什么?

gradle - 复制类型的gradle任务中的空指针异常

grails - gradle:未排序的dependsOn任务,如何处理?

java - 使用 Gradle 编译项目时 IntelliJ 到底在做什么?

coding-style - Gradle build.gradle 代码风格

android - 从 java 模块中引用 android 库

android - 错误 :Could not find property 'assembleDebug' on project ':app'