起因在于aliyun云效并没有jdk21版本可选,最新只支持到jdk18
于是有了这篇文章
这里我们使用的是java-21-amazon-corretto,它安装后
/usr/lib/jvm/java-21-amazon-corretto目录作为默认的安装目录,
所以云效缓存添加/usr/lib/jvm/java-21-amazon-corretto目录
java构建尽可能使用最新的版本
#install jdk21
if [ ! -d "/usr/lib/jvm/java-21-amazon-corretto/bin" ]; then
apt-get update
apt-get install software-properties-common ca-certificates curl gnupg apt-utils -y
wget -O- https://apt.corretto.aws/corretto.key | apt-key add -
add-apt-repository 'deb https://apt.corretto.aws stable main'
apt-get update
apt-get install -y java-21-amazon-corretto-jdk
fi
export JAVA_HOME=/usr/lib/jvm/java-21-amazon-corretto
# maven build your module here
mvn -B clean package -pl admin -am -DskipTests -T 2C
这里我们判断了一下缓存的jdk目录存在与否,如果不存在的话安装一下jdk21
安装完成后切换默认jdk至21
maven打包会自动检测JAVA_HOME环境变量,构建我们的admin模块,项目是正常的springboot多模块项目,打包完成后jdk目录将会被流水线缓存,30天内的再次构建将大幅降低构建时间
可以看到无jdk目录缓存的构建用时两分多构建,大部分时间是安装jdk依赖导致的,阿里云云效流水线的共享构建集群负载高时耗时甚至能到4-5分钟,优化后构建稳定在一分钟左右,提升非常明显