【问题标题】:Ordered output for maven parallel buildMaven 并行构建的有序输出
【发布时间】:2019-02-18 10:44:22
【问题描述】:

我正在使用 maven 版本 3+ 来构建我的项目。我正在使用以下命令使用并行构建: mvn -T 10 全新安装

这使用了 10 个线程,构建时间减少了 40%-50%。但与此同时,它弄乱了 maven 命令的输出,变得非常难以理解。有没有办法我可以获得有序的输出,或者他们无法绕过混乱的控制台输出?

【问题讨论】:

  • 如果您认为并行线程正在写入日志,则预计输出不再是线性的,否则您将对日志输出进行同步,这最终会阻止真正的并行化。只有当你真的有你想分析的问题时才会出现问题......但是你可以换成单线程并分析它......所以呢?
  • 你的构建中有多少个模块?
  • @khmarbause 感谢您的回答。我的项目中有大约 30 个模块。而且我相信我们可以忍受一些无序的日志记录,并在出现问题时返回单线程。

标签: java maven build maven-3


【解决方案1】:

使用的线程配置是不可能的。线程仅用于从存储库获取文件,否则由于依赖关系它是线性的,除非您的模块是独立的,在这种情况下您可以轻松创建多个构建。您可以在线程模式下禁用日志记录并仅打印错误。

线性执行参考链接:http://www.keensoft.es/en/speeding-up-maven-by-parallel-threads/

【讨论】:

  • 正如原始发帖人所写,他/她的时间减少了 40%-50%,这意味着使用并行构建是一个好主意。你假设只有来自存储库的文件是并行的,这是完全错误的。如果您遇到模块 A、B、C、D、...Z 和模块 B 依赖于 B 上的 A 和 C 以及 Y 上的 ...Z 的情况,那么这将导致线性构建顺序..但通常的项目是不像……
  • 我特意写了“除非你的模块是独立的”,很少是独立的,并添加了线性执行声明的参考链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-27
  • 2023-03-12
  • 1970-01-01
  • 2010-10-09
  • 2016-02-20
  • 1970-01-01
相关资源
最近更新 更多