You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle自定义任务调用maven exec插件执行clean package报流关闭错误

问题原因

这个stream is closed报错是Gradle进程与Maven子进程之间的输出流转发异常导致,常见触发原因如下:

  1. 所用gradle-maven-exec-plugin版本与当前Gradle版本不兼容,插件内部的子进程输出流处理逻辑存在缺陷,在Maven任务未完全执行完毕时就提前关闭了Gradle侧的输出接收流
  2. Maven执行过程中输出了颜色控制码、动态进度条等特殊字符,Gradle的默认输出处理逻辑识别异常主动关闭了流
  3. 自定义任务的mavenexec配置未指定输出流继承规则,默认的流转发逻辑在输出内容较多时提前终止

解决方案

  • 优先在mavenexec配置块中添加流继承规则,强制让Maven输出直接对接Gradle的标准输出/错误流,绕过插件自带的转发逻辑:
task 41_RunUIUnittests {
   doLast {
      def buildDir = file('../../build/build.functionaltests')
      println '\tFrom ' + buildDir   
      mavenexec {
         workingDir  buildDir
         goals       'clean', 'package'
         // 新增以下两行配置
         standardOutput = System.out
         errorOutput = System.err
      }
   }
}
  • 如果修改配置后仍报错,给Maven添加批处理模式参数,关闭特殊字符输出:
    将goals配置修改为:goals 'clean', 'package', '-B',-B参数会开启Maven批处理模式,关闭颜色输出、动态进度条等会输出特殊控制字符的功能。
  • 若以上方案均无效,升级gradle-maven-exec-plugin到适配你当前Gradle版本的正式发布版本即可。

内容的提问来源于stack exchange,提问作者Frederic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 00:06:04