Groovy执行外部进程输出顺序错乱问题求助
问题:Groovy执行外部Maven进程时输出顺序错乱且日志延迟输出
已查阅的相关问题
- 为什么输出顺序不正确?
- 为什么subprocess的输出顺序不对?
已尝试的解决方案
- 不让外部进程在IO缓冲区上阻塞的Java规范方案
- Java ProcessBuilder处理stdout的实践方案
问题详情
我用Groovy脚本执行外部Maven命令时,出现输出顺序错乱的问题,同时日志会在命令执行结束后一次性输出,而非实时打印。
实现代码
final String command = "cmd /c mvn -e --no-transfer-progress clean compile -Psome-profile" ProcessBuilder processBuilder = new ProcessBuilder(command.split()) processBuilder = processBuilder.redirectErrorStream(true) final Process proc = processBuilder.start() proc.waitForProcessOutput(System.out, System.err)
当前错误输出
[WARNING] D:\checkstyle\src\main\java\com\puppycrawl\tools\checkstyle\checks\imports\ImportControlLoader.java:[185,78] [argument] incompatible argument for parameter parent of FileImportControl. found : @Initialized @Nullable PkgImportControl [WARNING] required: @Initialized @NonNull PkgImportControl
预期正确输出
[WARNING] D:\checkstyle\src\main\java\com\puppycrawl\tools\checkstyle\checks\imports\ImportControlLoader.java:[185,78] [argument] incompatible argument for parameter parent of FileImportControl. found : @Initialized @Nullable PkgImportControl required: @Initialized @NonNull PkgImportControl [WARNING]................
环境信息
初始Groovy版本:
Groovy Version: 2.5.18 JVM: 11.0.16.1 Vendor: Azul Systems, Inc. OS: Windows 11
更新情况
已升级Groovy版本至:
Groovy Version: 4.0.5 JVM: 11.0.16.1 Vendor: Azul Systems, Inc. OS: Windows 11
但问题仍未解决。
内容的提问来源于stack exchange,提问作者VIAGC
相关产品推荐
相关产品推荐

