gpt4 book ai didi

gradle - Gradle,命令行 'cmd', '/c', 'echo doLast!'不执行任何操作

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

我正在阅读有关Gradle Exec的信息,并创建了以下build.gradle:

task startTomcat(type:Exec) {
commandLine 'cmd', '/c', 'echo init startTomcat'
}

task stopTomcat(type:Exec) {

// on windows:
commandLine 'cmd', '/c', 'echo init stopTomcat!'
doLast {
commandLine 'cmd', '/c', 'echo doLast stopTomcat!'
}
}

当我运行 gradlew stopTomcat时,输出如下所示:
Parallel execution with configuration on demand is an incubating feature.
:stopTomcat
init stopTomcat!

我看不到 doLast stopTomcat!行,为什么我不能在 doLast中执行命令?

最佳答案

您的任务是Exec类型的。 commandLine方法调用通过将cmd/cecho init stopTomcat!传递给任务来配置任务。这发生在配置阶段。

然后任务在执行阶段运行并打印:

init stopTomcat!

然后 doLast块启动并配置任务,将 cmd/cecho doLast stopTomcat!传递给该任务。由于taks已运行,因此此配置无效。

要打印第二张照片,您可以执行以下操作:
task stopTomcat(type:Exec) {

// on windows:
commandLine 'cmd', '/c', 'echo init stopTomcat!'
doLast {
exec {
commandLine 'cmd', '/c', 'echo doLast stopTomcat!'
}
}
}

这是调用exec任务的另一种方法。

关于gradle - Gradle,命令行 'cmd', '/c', 'echo doLast!'不执行任何操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42055620/

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