Maven编译加速
多线程
参考这个文章:https://www.cnblogs.com/AmilyWilly/p/7613644.html
然后自己做了一些测试,发现开启多线程编译,编译速度提升非常大:
time mvn clean package
real 1m41.934s
user 0m47.948s
sys 0m3.857stime mvn clean package
real 1m10.843s
user 0m38.914s
sys 0m3.187smvn clean compile
real 0m20.800s
user 0m25.603s
sys 0m2.121stime mvn clean package -Dmaven.compile.fork=true
real 0m21.038s
user 0m34.705s
sys 0m3.120stime mvn clean compile -Dmaven.compile.fork=true
real 0m8.664s
user 0m20.411s
sys 0m1.503s
结论:
如只是想编译运行,不打包(jar/war),采用
mvn clean compile -Dmaven.compile.fork=true命令,该命令只生成文件目录。开发阶段一般用这个,将编译+部署写成一个脚本,速度最快。如果要打包,或者同时编译多个项目,采用
mvn clean package -Dmaven.compile.fork=true命令,该命令会生成war/jar文件
2018.08.18:
我在80.195测试服务器上,编译kiv项目,发现开启多线程和不开启多线程,时间差别不大;不过采用compile替代package,提升很大;而不用clean,也会额外带来很大的提升:
time mvn clean package
real 0m27.137s
user 0m38.038s
sys 0m2.506stime mvn clean package -Dmaven.compile.fork=true
real 0m25.081s
user 0m36.834s
sys 0m2.616stime mvn clean compile
real 0m11.320s
user 0m23.395s
sys 0m1.179stime mvn compile
real 0m4.775s
user 0m8.757s
sys 0m0.608s
内存
网上看到别人的一个帖子,通过增加JVM内存也能提升编译速度:
以前一直工程较少,编译maven时一直没关注过速度。现在依赖工程较多,maven编译越来越慢。通过加到java编译内存可以提高编译速度
比如设置成800M速度从原来的20分钟缩短到3分钟
-Xms800m -Xmx800m -XX:MaxNewSize=512m -XX:MaxPermSize=512m
这个我没试过,待验证。
知识点
maven package 和 install 区别
1.install:打包好的 jar 包会安装到本地的 maven 仓库中,使用的配置是默认的配置,供其他项目使用。
2.package 指定参数打包:clean package -Dmaven.test.skip=true -Pprod 这种方式就是指定了打包的参数,并且打包后的文件存放到项目的 target 目录下。
最快的一键部署脚本(待修改)
1 | |