如何以编程方式排除生成的Gradle任务



任务task0依赖于由规则生成的task1

具有的build.gradle

project.task0.dependsOn -= task1

由于尚未生成CCD_ 4,因此失败。

使用gradle.taskGraph.whenReady也不起作用,因为修改任务图为时已晚(尽管这可以用于禁用任务)。

如何从任务的依赖关系中删除生成的任务?

您可以使用以下方法来完成此操作:

project.gradle.projectsEvaluated {
    tasks.task0.dependsOn -= "task1"
}

或:

project.gradle.projectsEvaluated {
    tasks.task0.dependsOn -= tasks.task1
}

或者简单地说:

project.gradle.projectsEvaluated {
    tasks.task0.dependsOn = []
}

我发现在更改之前/之后输出依赖项很有帮助,以确保它具有所需的效果:

project.gradle.projectsEvaluated {
    tasks.xyz.dependsOn.forEach {
        println("before: " + it + " (type " + it.getClass() + ")")
    }
    // modify tasks.xyz.dependsOn in some way
    tasks.xyz.dependsOn.forEach {
        println("after: " + it + " (type " + it.getClass() + ")")
    }
}

最新更新