背景
在阿里内部有一个典型的pandoraboot应用A,它参与研发的同学与每周的发布次数都比较多,是一个典型的热点应用.它的构建产物是一个fatjar,文件大小有1个G,其中包含了个jar。
在最近,应用A使用了最新的amaven版本后,p95的构建耗时从20分钟下降到了6分钟。
我们来看看有没可能将应用A的构建继续优化,下降到60秒.这样,我们就有更多的时间去外面呼吸更多的新鲜空气了。
现状
在命中所有amaven的依赖树缓存,及docker缓存后(即最佳情况),我们拿应用A的master分支来构建下,看能到几分钟。
一次典型的构建主要分二个大步骤,一个是主包构建,即打fatjar,一个是镜像构建。
我们先看主包构建,在amaven的依赖缓存全命中的情况下,最优是2:29min。
再看镜像构建,build耗时28秒,push耗时8秒,共66秒。
所以,在最佳情况下,应用A的"纯构建"耗时在分半,即秒左右.但实际上左边菜单中显示的时间+7=秒,约有-=2秒的时间,是构建系统在做构建前置及后置任务。
方案
.1mvnbuild优化
从amaven的buildreport中可以看到top慢的步骤,耗时依次是ms,ms,ms;主要是慢在maven-