Java 您更喜欢哪种方法来改进maven项目的增量构建?
我将优化构建项目的时间。最耗时的事情之一是项目的汇编 由于此处特别提到的maven的已知问题: 我们必须在每次构建过程之前使用mvn clean 我调查了这个问题,发现了两种方法: 我已经测试过了,看起来不错。正如我看到的,实现了几乎相同的功能,但是应该指定特殊的命令来实现结果(例如mvn reactor:make) 所以我得出的结论是,只有开发人员要在本地计算机上优化建筑物的时间,他们才更方便。但我有一些犹豫,因为它是托管的,而且(我认为)作为官方maven插件受到支持,但托管在java.net上 我的问题是:Java 您更喜欢哪种方法来改进maven项目的增量构建?,java,maven,maven-plugin,Java,Maven,Maven Plugin,我将优化构建项目的时间。最耗时的事情之一是项目的汇编 由于此处特别提到的maven的已知问题: 我们必须在每次构建过程之前使用mvn clean 我调查了这个问题,发现了两种方法: 我已经测试过了,看起来不错。正如我看到的,实现了几乎相同的功能,但是应该指定特殊的命令来实现结果(例如mvn reactor:make) 所以我得出的结论是,只有开发人员要在本地计算机上优化建筑物的时间,他们才更方便。但我有一些犹豫,因为它是托管的,而且(我认为)作为官方maven插件受到支持,但托管在java.
你试过使用詹金斯(或哈德逊)吗?它非常好,管理着许多小的、相互依赖的项目。在服务器上进行设置也非常容易。我建议至少尝试一下。设置服务器并配置20个maven项目只需几分钟
我喜欢它的一点是,它将监控您的源代码管理并每X分钟执行一次构建,它将自动连续构建任何上游项目。当您只想在构建中构建模块的一个子集时,reactor插件更适合您,增量插件的目标更多的是只构建自上次编译以来发生变化的模块 虽然我可以看到您使用这两种方法都达到了相同的效果,但根据您所说的,您可能对增量构建插件更感兴趣。我不知道,如果模块/依赖项有未编译的更改,是否可以将这两个功能结合使用,以确保只构建所需的模块/依赖项
PS-我认为最新的增量构建插件版本已经修复了干净的bug。上述两个插件都不会加快用例的编译速度。如果您想加快编译速度,我建议您使用并行构建支持更新到maven 3 然而,除了reactor插件的svn相关特性外,上述插件的功能也可以通过maven3实现。为此,你需要詹金斯,如前一篇文章所述 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)
我的问题是:编译需要多长时间?考试需要多长时间?这两者之间的关系如何?Hudson/Jenkins没有优化构建(这是OP的问题)。此外,当构建需要花费很长时间时,使用H/J将无助于本地构建