您更喜欢哪种方法来改善maven项目的增量构建?

我将优化构建项目的时间。 最耗时的事情之一是项目的汇编。

由于已知的maven问题特别在这里提到: Maven增量构建我们必须在每个构建过程之前使用mvn clean

我调查了这个问题,发现了两种方法:

  1. 增量构建插件Maven Mojo
  2. Maven 2 Reactor插件

我测试了Incremental-build-plugin Maven Mojo ,看起来非常不错。 正如我所看到的, Maven 2 Reactor Plugin实现了几乎相同的function,但应该指定特殊命令来实现结果(例如mvn reactor:make )。

所以我得出的结论是, Maven 2 Reactor插件只对开发人员来说更方便,如果他们要优化本地计算机上的建筑物的时间。 但我有一些犹豫,因为Maven 2 Reactor插件是托管的(我认为)支持官方maven插件,但Incremental-build-plugin Maven Mojo托管在java.net上。

我的问题是:

  1. 我的结论是这两个插件解决了几乎相同的问题吗?
  2. 有没有人有使用这两个插件的经验,并能够给他们任何反馈?
  3. 您对建筑的优化还有其他想法吗?

上面提到的这两个插件都不会加快你的用例的编译时间。 如果你想加快你的编译时间,我建议你使用并行构建支持更新到maven 3。

然而,除了反应器插件的svn相关特征之外,使用maven3开箱即可实现上述插件所做的事情。 为此,你需要上一篇文章中提到的jenkins。

有用的maven 3function可以加速你的构建:

mvn clean compile -T 3 (using three threads for paralell builds) mvn -amd -pl groupid:arifactId (builds the specified projects and all dependent artifacs) 

当你想在一个构建中只构建你的模块的一个子集时,反应器插件更有用,增量插件更多的目的是只构建自上次编译以来已经改变的那些模块。

虽然我可以看到你使用相同的效果,但你可能对你所说的增量构建插件更感兴趣。 您是否可以将两者结合使用,以确保只有在我们不知道的未编译更改时才构建您需要的模块/依赖项。

PS – 我认为在最新的增量构建插件版本中修复了干净的bug。

你尝试过使用Jenkins(或Hudson)吗? 这是非常好的,并管理许多小的,依赖项目。 在服务器上设置也很容易。 我建议至少尝试一下。 设置服务器并配置20个maven项目只需几分钟。

我喜欢它的是它将监视你的源代码控制并每隔X分钟执行一次构建,它将自动连续构建任何上游项目。