背景
1 项目的开发环境用jenkins + maven进行自动构建
2 通过shell脚本分发到每个机器并重启
整个流程原来4min,开发环境要应对频繁的修改,这个时间难以接收,于是开始一波优化。
先定位耗时点
1 maven 编译大约2-3min
2 分发 1 min
3 其他,打包之后没有主动通知,有流程耗时。
解决
-
先解决maven
-
首先,修改setting.xml配置,尽可能使用访问速度比较快的仓库
-
其次,打包指令注意一下,生成jar包通常到package即可
- mvn clean package依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)等7个阶段。
- mvn clean install依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install等8个阶段。
- mvn clean deploy依次执行了clean、resources、compile、testResources、testCompile、test、jar(打包)、install、deploy等9个阶段。
-
再次,跳过测试: -Dmaven.test.skip=true
-
再次,多线程编译:-Dmaven.compile.fork=true
image.png -
解决分发
- 每个服务scp改为并发分发 加入 & 变成后台运行
- 通过wait等待所有线程结束
- 加入时间 打印知道每个环节时间 time_now=$(date "+%Y-%m-%d %H:%M:%S:%N")
for node in ${api_host_all[@]}; do { scp xxx } & done wait time_now=$(date "+%Y-%m-%d %H:%M:%S:%N")
-
加入通知,打包成功后立刻通知办公软件
通知到企业微信 or 钉钉,这个网上教程很多,而且办公软件更新很快,这个就不贴了。
其他
-
网上还有建议不要用lombok,这个为了优化打包时间的改动成本有点高,没有lombok研发时间要增加不少,所以没有考虑。
https://blog.csdn.net/litao8912/article/details/103253414 -
如果clean速度很慢,还可以考虑写脚本删除
网友评论