Gradle Exec任务不退出 [英] Gradle Exec task not exiting

查看:82
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆