gpt4 book ai didi

gradle - 从 gradle 中的任务调用另一个任务

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

我正在使用 Gradle。我有两个任务:“a”和“b”。我希望任务“a”调用任务“b”。我怎样才能做到这一点?

task b(type: Exec) {
description "Task B"
commandLine 'echo', 'task-b'
}

task a(type: Exec) {
description "Task A"
commandLine 'echo', 'task-a'
// TODO: run task b
}

在 Ant 中,这是小菜一碟:
<target name="a">
<echo message="task-a"/>
<antcall target="b"/>
</target>
<target name="b">
<echo message="task-b"/>
</target>

我尝试的第一种方法是使用“dependsOn”功能。然而,这并不理想,因为我们需要反向考虑所有任务,并且还有其他几个问题(例如在满足条件时运行任务)。

我尝试的另一种方法是:
b.mustRunAfter(a)

但是,这仅在我像这样运行 gradle 任务时才有效:
gradle -q a b

这也不理想。

无论如何,是否可以简单地从现有任务中调用另一个任务?

最佳答案

建议的一种方法是为任务添加终结器

task beta << {
println 'Hello from beta'
}

task alpha << {
println "Hello from alpha"
}

// some condition
if (project.hasProperty("doBeta")) {
alpha.finalizedBy beta
}

然后我们可以根据需要执行另一个任务。至于从另一个任务执行任务,你不能这样做。任务声明是声明性的,而不是强制性的。所以一个任务可以依赖另一个任务,但他们不能执行另一个任务。
$ gradle -q alpha
Hello from alpha
$ gradle -q alpha -PdoBeta
Hello from alpha
Hello from beta

关于gradle - 从 gradle 中的任务调用另一个任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40612681/

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