Gradle,命令行';cmd''/c'';回声多拉斯特';无所事事
我正在阅读并创建以下Gradle,命令行';cmd''/c'';回声多拉斯特';无所事事,gradle,Gradle,我正在阅读并创建以下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
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
、/c
和echo init stopTomcat来配置任务代码>到它。这发生在配置阶段
然后,任务在执行阶段运行并打印:
init stopTomcat!
然后,doLast
块启动并配置任务,传递cmd
、/c
和echo doLast stopTomcat代码>到它。此配置无效,因为taks已运行
要获得第二次打印,您可以执行以下操作:
task stopTomcat(type:Exec) {
// on windows:
commandLine 'cmd', '/c', 'echo init stopTomcat!'
doLast {
exec {
commandLine 'cmd', '/c', 'echo doLast stopTomcat!'
}
}
}
这是调用exec任务的另一种方法