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

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

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

相關(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)生

控制臺(tái)查看輸出


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