Gradle任务:启动服务
task startService(type: Exec) {
standardOutput = new ByteArrayOutputStream()
errorOutput = new ByteArrayOutputStream()
commandLine 'cmd', '/c', 'net', 'start', 'serviceFoo'
doLast {
println standardOutput.toString()
println errorOutput.toString()
}
}
运行"net start serviceFoo
“将在Windows上打印”拒绝访问“消息。
但是gradle startService
,没有打印任何消息。
在Windows命令提示符(admin)上尝试了它:
commandLine 'net', 'start', 'serviceFoo'
错误讯息:
* What went wrong:
Execution failed for task ':startService'.
> Process 'command 'net'' finished with non-zero exit value 2
在命令提示符(admin)上:
net start serviceFoo
成功。
答案 0 :(得分:0)
默认情况下,Gradle将抛出异常,并在从命令接收非零结果代码时终止。您可以通过设置属性
来禁用它ignoreExitValue true
在你的任务中。通常你也想自己检查一下,例如。
doLast {
if (execResult.getExitValue() != 0) {
...
}
}