gpt4 book ai didi

gradle - Gradle禁用特定任务的自动子项目执行

转载 作者:行者123 更新时间:2023-12-03 03:39:54 26 4
gpt4 key购买 nike

我有一个多项目的Gradle构建,并且自定义了“运行”任务,以在根项目中做一些不同的事情。
但是,我不希望它像现在一样在完成后调用每个子项目的“运行”任务。但是,此行为仅应针对此任务,我希望所有其他任务都像默认情况一样以递归方式执行,但不希望运行任务。我也不能全局禁用每个子项目的运行任务,因为当单独执行每个子项目时,它确实有其用途。

最佳答案

在根build.gradle中,考虑以下内容(完整的示例here):

gradle.taskGraph.whenReady { graph ->
def hasRootRunTask = graph.hasTask(':run')

if (hasRootRunTask) {
graph.getAllTasks().each { task ->
// look for :abc:run, :def:run etc
def subRunTask = (task.path =~ /:.+:run/)
if (subRunTask) {
println "TRACER skipping ${task.path} because ':run' was specified"
task.enabled = false
}
}
}
}

这将检查任务图的 :run。如果存在,那么 :abc:run(即子项目任务)将被禁用。

root run任务的示例输出:
$ gradle -q run 
TRACER skipping :abc:run because ':run' was specified
TRACER skipping :def:run because ':run' was specified
TRACER executing run for path :
run子项目中 abc任务的示例输出本身:
$ gradle -q :abc:run 
TRACER executing run for path :abc

关于gradle - Gradle禁用特定任务的自动子项目执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51903863/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com