Gradle exec:如何打印错误输出? [英] gradle exec: how to print error output?

查看:20
本文介绍了Gradle exec:如何打印错误输出?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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命令提示符(管理员)上尝试:

 commandLine 'net', 'start', 'serviceFoo'

错误消息:

* What went wrong:
Execution failed for task ':startService'.
> Process 'command 'net'' finished with non-zero exit value 2

在命令提示符下(管理员):

 net start serviceFoo

成功。

推荐答案

默认情况下,Gradle会在收到来自命令的非零结果代码时抛出异常并终止。您可以通过设置属性

来禁用此功能
ignoreExitValue true

您的任务中。通常情况下,您也会想自己检查一下,例如

doLast {
  if (execResult.getExitValue() != 0) {
    ...
  }
}

这篇关于Gradle exec:如何打印错误输出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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