背景
目前大部分開發(fā)團隊采用 Springcloud 等微服務框架,在 Git 倉庫中會分多個模塊文件夾,但是實際開發(fā)測試過程中,我們并不需要全量更新,
只需編譯相應的服務及依賴模塊即可,目前各團隊在 Jenkins 上的構(gòu)建 job 大部分都是一個服務/模塊創(chuàng)建一個構(gòu)建 job,看起來非常的龐雜和臃
腫,這里介紹如何結(jié)合參數(shù)化構(gòu)建實現(xiàn)只編譯打包制定的模塊文件夾。
環(huán)境準備
安裝 Extended Choice Parameter , 目前公用Jenkins上已安裝好,此步驟可忽略
Jenkins配置
啟用參數(shù)化構(gòu)建
第一步:啟動參數(shù)化構(gòu)建
第二步:選擇 Extended Choice Parameter ,如下圖

image.png
參數(shù)化配置
按如下圖片設(shè)置各參數(shù)的細節(jié)

image.png
編寫 Shell
按如下圖片設(shè)置各參數(shù)的細節(jié)
其中,Shell 腳本的變量 WORKSPACE 就是指的工作區(qū)目錄,也是制定到拉取git倉庫后的目錄
變量 module_name 是 上一步配置的那個參數(shù)名稱
這里因為是多選項, ${module_name }輸出是 ratel-common,ratel-service-righ t這種形式,所以要做一下格式化處理,這里用的是
awk 切割 ,各位同學也可以像其他辦法單獨取出模塊名
此外,Maven執(zhí)行的命令最好使用絕對路徑,使用系統(tǒng)環(huán)境變量有可能會找不到

image.png
相關(guān) Shell 腳本如下:
echo ${module_name}| awk -F',' -v OFS='\n' '{var=$1;$1=var;print $0}'> 1.
txt
while read line
do
cd ${WORKSPACE}/${line}
/app/maven/bin/mvn clean install -Dmaven.test.skip
echo "${line} "
done<1.txt
查看效果
查看效果如下,參數(shù)化構(gòu)建選擇界面已產(chǎn)生

image.png
控制臺查看輸出

image.png

image.png
可以看出,想要的效果已經(jīng)實現(xiàn)了。