Jenkins构建优化 20min到2min
2024-12-19 11:21:00 4
系统的jenkins构建流程很简单, 但一直很慢. 一次构建平均十几二十分钟
- git pull (17分钟)
- mvn clean package (6分钟)
- scp (4分钟)
Git Pull
- 发现之前的配置被勾选了自动清理workspace, 取消后拉代码就正常了, 基本是秒拉
Maven Package
- mvn在根pom下执行的, 每次package, 都打包出了一些压根不需要的项目, 比如当前打包api项目, 但admin项目也被打包了. 还有一些基础模块, 这次commit都没有修改, 但也被重新编译了
- 最初是考虑maven的每个模块都配置成一个单独jenkins项目使用
mvn claen install
, 这样就可以避免未修改的模块重复编译. 但是考虑到配置的复杂度和其他问题, 暂时还是通过用sed命令, 更改pom文件的module定义, 使其跳过部分项目的构建(基础模块仍然重复构建). 最终将mvn package时间降到了1.30min
SCP
- war包其实就是个zip文件, 而且每次编译后的war包, 其内容大部分都是相同的
- 那么就可以, 将编译后的war和服务器的war都解压出来, 进行比对, 新增的/修改的再上传, 不存在的文件也进行同步删除, 大大减少了需要传输的文件大小
- 开源的
rsync
工具, 可以实现这种差异上传 - 上传后, 服务器再进行重新打包为war, 就完成了. 整体时间降到了20s