Gradle Exec任务不退出 [英] Gradle Exec task not exiting
本文介绍了Gradle Exec任务不退出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的gradle任务:
task startTomcat(type:Exec){
workingDir ENV ['CATALINA_HOME'] +'/ bin'
commandLine'cmd',' / c','catalina.bat'
args'start'
}
当我运行这个任务时,tomcat确实启动。但是这项任务并没有完成,并且一直在等待。
我已经通过执行文档页面,但无法得到任何线索。
请帮助。
解决方案
感谢Peter的意见。下面是使用 ProcessBuilder
为我工作的解决方案:
/ * tomcat的配置* /
任务catalinaConfig {
ext.binDir = ENV ['CATALINA_HOME'] +\\bin
}
任务startTomcat< ;< {
printlnTomcat path:+ catalinaConfig.binDir
ProcessBuilder pb = new ProcessBuilder([cmd,/ c,catalina.bat,start]);
pb.directory(新文件(catalinaConfig.binDir));
println现在启动tomcat ...
Process proc = pb.start();
proc.waitFor();
printlnTomcat即将上架......+ proc.exitValue()
}
任务stopTomcat<< {
printlnTomcat path:+ catalinaConfig.binDir
ProcessBuilder pb1 = new ProcessBuilder([cmd,/ c,catalina.bat,stop]);
pb1.directory(new File(catalinaConfig.binDir));
println现在停止tomcat ...
进程proc1 = pb1.start();
proc1.waitFor();
}
I am new to Gradle and I am using a small task to start/stop local tomcat server.
My gradle task:
task startTomcat(type: Exec){
workingDir ENV['CATALINA_HOME'] + '/bin'
commandLine 'cmd', '/c', 'catalina.bat'
args 'start'
}
When I run this task, tomcat does start. But the task is not completing and keeps on waiting. I have gone through Exec documentation page but could not get any clue.
Please help.
解决方案
Thanks Peter for the input. Here is the solution that worked for me using ProcessBuilder
:
/* Configuration for tomcat */
task catalinaConfig {
ext.binDir = ENV['CATALINA_HOME'] + "\\bin"
}
task startTomcat << {
println "Tomcat path: " + catalinaConfig.binDir
ProcessBuilder pb = new ProcessBuilder(["cmd", "/c", "catalina.bat", "start"]);
pb.directory(new File(catalinaConfig.binDir));
println "Starting tomcat now ... "
Process proc = pb.start();
proc.waitFor();
println "Tomcat is coming up now ... " + proc.exitValue()
}
task stopTomcat << {
println "Tomcat path: " + catalinaConfig.binDir
ProcessBuilder pb1 = new ProcessBuilder(["cmd", "/c", "catalina.bat", "stop"]);
pb1.directory(new File(catalinaConfig.binDir));
println "Stopping tomcat now ... "
Process proc1 = pb1.start();
proc1.waitFor();
}
这篇关于Gradle Exec任务不退出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文