Maven 是否支持增量构建?
如何使用 Maven 来支持增量构建?某处有指南吗?(谷歌搜索结果令人失望)
我不能完全弄清楚驱动Maven社区的动态,但它对你的构建过程进行细粒度控制并不友好。
无论如何,在四处挖掘之后,我在这里找到了一个对我有用的答案:http://www.codesenior.com/en/tutorial/Java-Maven-Compile-Only-Changed-Files
请注意,设置该值起初使我感到困惑,但此处给出了解释:https://stackoverflow.com/a/19653164/409638false
为方便起见,转载如下:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
</plugin>
这是这里的关键。useIncrementalCompilation
false
我可以确认,当我运行我的构建时,我已经从:
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 114 source files to /home/vagrant/workspace/splat/target/classes
自
[INFO] Compiling 1 source file to /home/vagrant/workspace/splat/target/classes
这已经削减了我的增量构建的几秒钟。现在我所要做的就是弄清楚如何禁用所有其他不必要的垃圾,这些垃圾减慢了我的编辑/评估周期......
默认情况下,Maven以增量方式构建,但事实证明,编译器插件(即javac的核心)非常快,每次构建新代码都不是合理的代码库大小的瓶颈,而不是与构建大型程序集或运行大型测试套件相比。(像大多数语言一样,Java的编译速度比C++快得多。