gpt4 book ai didi

gradle - Gradle-如何为Exec类型的任务设置依赖项任务?

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

说,您有以下任务:

task commandA() {
doLast {
project.ext.ping = 'PING'
}
}

这将起作用:
task commandB() {
dependsOn commandA
doLast {
println ping
}
}

这将失败:
task commandC(type: Exec) {
dependsOn commandA
commandLine "echo", ping
}

带有 Could not find property 'ping' on task 'commandC'.错误消息。

那么,如何声明一个exec型任务的依赖关系并在该依赖关系中设置一些变量呢?

最佳答案

只是不要在doLast块中初始化变量,因为它是在执行阶段初始化的,但是commandLine "echo", ping试图在构建的配置阶段对其进行初始化。

因此,您需要这样的东西:

task commandA() {
project.ext.ping = 'PING'
}

甚至没有任务,如下所示:
project.ext.ping = 'PING' 

由于将始终执行任何任务的配置,即使将不会执行任务的 Action 。

另一个解决方案是使用exec-action而不是exec-task,如下所示:
task commandA() {
doLast {
project.ext.ping = 'PING'
}
}

task commandC {
dependsOn commandA
doLast {
exec {
commandLine ping, "192.168.100.1"
}
}
}

在这种情况下,执行关闭将在执行阶段通过可用的ping变量完成。

您可以在官方Gradle user guide中了解有关构建生命周期的信息

关于gradle - Gradle-如何为Exec类型的任务设置依赖项任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40622388/

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