moecat

moecat

摸鱼大师

阿里云云效流水线打包JDK21优化

起因在于 aliyun 云效并没有 jdk21 版本可选,最新只支持到 jdk18
于是有了这篇文章

  1. 第一步
    首先,流水线缓存添加需要安装的 jdk 目录

image
这里我们使用的是 java-21-amazon-corretto, 它安装后
/usr/lib/jvm/java-21-amazon-corretto 目录作为默认的安装目录,
所以云效缓存添加 /usr/lib/jvm/java-21-amazon-corretto 目录

  1. 第二步

image
java 构建尽可能使用最新的版本

  1. 第三步
    编写构建脚本
#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 天内的再次构建将大幅降低构建时间

image
可以看到无 jdk 目录缓存的构建用时两分多构建,大部分时间是安装 jdk 依赖导致的,阿里云云效流水线的共享构建集群负载高时耗时甚至能到 4-5 分钟,优化后构建稳定在一分钟左右,提升非常明显

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。