我将优化构建项目的时间。最耗时的事情之一是项目的汇编。
由于此处特别提到的maven的已知问题: Maven incremental building 我们必须在每个构建过程之前使用 mvn clean 。
我调查了这个问题并找到了两种方法:
我测试了Incremental-build-plugin Maven Mojo,看起来非常不错。我看到Maven 2 Reactor Plugin实现了几乎相同的功能,但应指定特殊命令来实现结果(例如, mvn reactor:make )。
所以我得出的结论是Maven 2 Reactor Plugin只对开发人员来说更方便,如果他们要优化本地计算机上建筑物的时间。但我有一些犹豫,因为托管了Maven 2 Reactor Plugin并且(我认为)支持官方maven插件,但Incremental-build-plugin Maven Mojo托管在java.net上。
我的问题是:
答案 0 :(得分:4)
上面提到的两个插件都不会加快你的用例的编译时间。如果你想加快你的编译时间,我建议你使用并行构建支持更新到maven 3。
然而,除了反应器插件的svn相关特征之外,使用maven3开箱即可实现上述插件所做的工作。为此,你需要上一篇文章中提到的jenkins。
有用的maven 3功能可加快您的构建速度:
mvn clean compile -T 3 (using three threads for paralell builds)
mvn -amd -pl groupid:arifactId (builds the specified projects and all dependent artifacs)
答案 1 :(得分:0)
当你想在一个构建中只构建你的模块的一个子集时,反应器插件就更适用了,增量插件更多的目的是构建那些自上次编译以来已经改变的模块。
虽然我可以看到你使用相同的效果,但你可能对你所说的增量构建插件更感兴趣。是否可以将两者结合使用,以确保只有在我们不知道的未编译更改时才构建所需的模块/依赖项。
PS - 我认为在最新的增量构建插件版本中修复了干净的bug。
答案 2 :(得分:-1)
你尝试过使用Jenkins(或Hudson)吗?这是非常好的,并管理许多小的,依赖项目。在服务器上设置也很容易。我建议至少尝试一下。设置服务器并配置20个maven项目只需几分钟。
我喜欢它的是它会监视你的源代码控制并每隔X分钟执行一次构建,它会自动连续构建任何上游项目。