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 分鐘,優化後構建穩定在一分鐘左右,提升非常明顯

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。