Jenkins檢查自定義更新任意多個jar shell
阿新 • • 發佈:2020-11-29
背景
要打包的git分支要用到6個左右的專案jar包,但是每次更新的jar包可能是多個、可能是全部也可能是一個。全部更新太耗時、一個一個更新也要來回修改配置或者重複打包。
解決方法
利用迴圈更新、把要更新的找到規律,提取變數。然後根據這次要更新的專案寫到
ups.txt
中,可一個或者多個,進行測試就可以根據檔案的更新專案來更新環境的jar包啦!
操作步驟
建立任務
構建一個自由風格的軟體專案
--輸入對應的git地址和分支及對應的密碼,並把以下shell內容根據實際環境除錯後放在--構建
---執行shell中
--儲存執行即可。
#執行打包操作 JAVA_HOME=/usr/local/openjdk-8 JAVA_HOME=/usr/local/maven/jdk PATH=$JAVA_HOME/bin:/usr/local/maven/bin:$PATH mvn clean install -Dmaven.test.skip=true #mvn package -f pom.xml -s /usr/local/maven/conf/settings-27.xml clean install #進行模擬開發提交更新專案檔案 echo " store hbs " >ups.txt #!/bin/bash for JAR_XM in `cat ups.txt` do #更新 dpp-mndata SIP=10.0.43.36 #SIP=123.56.45.200 DOCKER_NAME=data-center JAR_NAME=${JAR_XM}-2.0.jar JAR_U=/app/data-center/${JAR_XM} JAR_PATH=${JAR_U}/${JAR_NAME} cd /var/jenkins_home/workspace/data-center2/${JAR_XM}/target echo " ps -ef |grep ${JAR_NAME} |awk '{print \$2}' | xargs kill -9 cd ${JAR_U} nohup java -jar ${JAR_NAME} -Dspring.config.location=classpath:application.properties> /dev/null 2>&1 & " >restart_${JAR_XM}.sh scp -r restart_${JAR_XM}.sh ${SIP}:/app/data-center/${JAR_XM} ssh ${SIP} "rm -rf /opt/${JAR_NAME}_bak && \ mv -f ${JAR_PATH} /opt/${JAR_NAME}_bak >/dev/null 2>&1 | true " scp -r ${JAR_NAME} ${SIP}:/app/data-center/${JAR_XM} ssh ${SIP} "bash ${JAR_U}/restart_${JAR_XM}.sh " if [ $? -eq 0 ] then echo "$UNAME , 更新成功!" else echo "$UNAME , 更新失敗!" fi done
環境截圖