2

我试过很简单:

 mvn clean install -Dmaven.test.skip.exec=true

从 Maven2 (2.2.1) 切换到 Maven3 (3.0.4 - 3.0.3)。但是 Maven2 用于构建的时间更少!对于 Maven2 近 16 分钟构建的项目,在 Maven3 上 - 近 20 分钟。但是,在 stackoverflow 上我也发现比 Maven3 有更好的性能。我应该为 Maven3 创建另一个本地存储库(我使用 Maven2 创建的旧版本)还是使用其他选项?谢谢。

4

2 回答 2

2

Maven 3 应该比 Maven 2 更快。当然,对于某些边缘情况,性能回归的可能性总是存在的。我不确定您的问题出在哪里,但我会首先查看哪个阶段需要更长的时间并将其与 Maven 2 构建进行比较,例如:

  • 这是多模块还是单模块构建?
  • 构建是否包含非标准构建扩展,例如maven-bundle-plugin
  • 构建是否使用最新版本的插件?在maven-compiler-plugin2.4.0 版本中为多模块项目带来了不错的性能改进
  • 构建参考工件是否具有版本范围?我记得早期的 Maven 3.0.x 版本在性能方面存在一些问题
  • 您的 POM 中是否已修复所有插件版本?Maven 3 可能会带来性能下降的新插件版本

一旦你缩小了根本原因,你可以自己修复它 - 如果可能的话 - 或者向 maven 插件或 maven 核心提交错误报告。

于 2012-05-15T07:39:50.137 回答
0

您可以尝试 Maven 3 的 -T 选项,它提供了并行执行生命周期部分的可能性。

--help 输出的摘录:

-T,--threads <arg>                     Thread count, for instance 2.0C
                                        where C is core multiplied

但这取决于您使用的插件版本是否已经更新并正确标记有@threadsafe。但有时值得一试。

于 2012-05-14T18:49:30.620 回答