Maven 是否支持增量构建?

2022-08-31 20:00:16

如何使用 Maven 来支持增量构建?某处有指南吗?(谷歌搜索结果令人失望)


答案 1

我不能完全弄清楚驱动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>

这是这里的关键。useIncrementalCompilationfalse

我可以确认,当我运行我的构建时,我已经从:

[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

这已经削减了我的增量构建的几秒钟。现在我所要做的就是弄清楚如何禁用所有其他不必要的垃圾,这些垃圾减慢了我的编辑/评估周期......


答案 2

默认情况下,Maven以增量方式构建,但事实证明,编译器插件(即javac的核心)非常快,每次构建新代码都不是合理的代码库大小的瓶颈,而不是与构建大型程序集或运行大型测试套件相比。(像大多数语言一样,Java的编译速度比C++快得多。


推荐