简介
对于CI/CD服务器,需要频繁对maven项目进行构建。我们可以基于这样的场景,使用一些技术加快maven构建速度。
使用所有cpu进行构建
默认情况下,maven只使用一个线程进行构建,但对于有多核cpu的CI/CD服务器来说,这样就有些浪费cpu资源了。这时可以通过Maven 3的并行构建来充分利用多核的性能,加速maven的构建。
构建命令:
mvn -T 1C clean install
设置-T 1C
表示每个CPU一个线程。
这对于有多个模块并且没有依赖关系的大型项目来说,能极大的加快构建速度。更详细的资料可见参考资料1。
后台运行Maven
maven每次启动构建,JVM都需要重新加载相关的类,初始化相关的环境。对于CI/CD服务器来说,频繁构建就导致频繁的JVM初始化,会消耗大量时间。基于这样的场景,社区开发了maven daemon项目。
该项目的目的是让maven一直运行在后台,这样就可以免去不少maven构建时的初始化步骤。还有该项目使用了GraalVM,也就是说maven daemon是直接以本地二进制代码执行的,执行效率和内存占用相对传统JVM来说更有优势。
maven daemon使用起来也很简单,跟普通的mvn命令一样,只需要把mvn改成mvnd就可以(不同环境的安装方法,可见参考资料2的官方文档):
mvnd clean install
maven daemon默认就是以多线程的方式运行,所以不需要再额外设置参数。
参考资料
[1]Parallel builds in Maven 3:https://cwiki.apache.org/confluence/display/MAVEN/Parallel+builds+in+Maven+3
[2]mvn daemon:https://github.com/mvndaemon/mvnd
评论
发表评论