[关闭]
@runzhliu 2018-01-01T12:08:28.000000Z 字数 920 阅读 2344

Maven 加速构建

maven package


参考资料
https://zeroturnaround.com/rebellabs/your-maven-build-is-slow-speed-it-up/


1 并行构建

一般情况下 Maven 不会在你的硬件上马力全开,它会根据模块来顺序构建。当然如果你的项目的模块没有构建顺序的强制要求,可以通过设置 Maven 来并行运作。

  1. mvn -T 4 install -- will use 4 threads
  2. mvn -T 1C install -- will use 1 thread per available CPU core

2 并行运行测试用例

通过设置 -DskipTests=true 跳过测试用例的步骤当然是可以节省构建时间,但是如果通过并行运行测试用例,加速构建过程,保留测试用例的运行步骤仍然是最佳的选择。

3 构建指定模块

针对多模块项目,很多时候,我们只需要做增量编译,对于那些需要经常修改重新构建的模块,可以通过只构建该模块,保留其他模块,来加速构建过程。

  1. // -pl 是告诉 Maven 只针对某个模块进行编译;-am 是会重新编译依赖该模块的其他模块
  2. mvn install -pl $moduleName -am

4 离线构建

所有的构建工具在工作的时候都会默认去更新依赖库,但是当你知道你的依赖库无需更新的时候,为何不直接进行离线构建呢?只需要在构建命令增加一个简单的选项 -offline 就可以实现。

5 加快 JVM 的启动

Maven 作为一个 Java 项目,当然可以通过 JVM 参数来进行优化。这两个选项使得 JVM 只进行比较基础的即时编译操作。

  1. -XX:+TieredCompilation -XX:TieredStopAtLevel=1

6 总结

通常一个比较快的编译命令会长以下这个样子:

  1. MAVEN_OPTS= -XX:+TieredCompilation -XX:TieredStopAtLevel=1
  2. mvn -T 1C install -pl $moduleName -am offline

对于本人平时工作而言,离线和针对指定模块构建可以明显加快我的项目的构建速度,这样更有利于开发工作的快速迭代。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注