環境介紹: 本文基於第一篇自動代碼更新環境,未安裝jenkins gitlab,參考第1篇
jenkins需安裝 Maven Integration plugin 插件
wget http://updates.jenkins-ci.org/download/plugins/maven-plugin/3.4/maven-plugin.hpi
下載后需要在web界面上進行上傳安裝
jenkins配置
1、新建一個maven任務,丟棄舊的構建為7天
2、添加gitlab上項目地址及驗證方式,選擇構建的分支。
3、選擇構建觸發器類型,我這里選擇當gitlab有更新時進行構建。並在高級里生成 secret token.
4、構建的pom文件路徑和構建命令參數,以當構建成war成功后,執行相應的自動化更新腳本命令

#!/bin/bash CODE_DIR="/var/lib/jenkins/workspace/carespay/target/" #項目目錄 DATE_TIME=`date +%Y-%m-%d-%H-%M-%S` #時間格式 DIR_NAME=carespay-${DATE_TIME} TAR_NAME=$DIR_NAME.war #打包后的名字 WEB_ADDR=192.168.10.227 #web服務器地址 WEB_DIR="/usr/local/tomcat5/webapps" #web服務器站點目錄的上一級 "/usr/local/tomcat1/webapps" WEB_NEWDIR_NAME=web-${DATE_TIME} #web服務器新建的站點目錄名字 #進入到項目目錄並打包代碼 tarcf_code(){ cd $CODE_DIR && mv carespay-ms.war /opt/$TAR_NAME } #拷貝到web服務器的站點目錄的上一級 scp_code(){ scp /opt/$TAR_NAME $WEB_ADDR:$WEB_DIR } #連接web服務器備份舊版代碼 tarxf_code(){ ssh $WEB_ADDR "cd $WEB_DIR && mv carespay* ../back/ " } #將新建的站點目錄與html站點目錄做一個軟鏈接 ln_code(){ ssh $WEB_ADDR "cd $WEB_DIR && rm -rf new && ln -s $DIR_NAME new" } #重啟tomcat reboot(){ ssh $WEB_ADDR "cd $WEB_DIR && sh reboot.sh && sleep 1m" } #刪除舊代碼 del_code(){ ssh $WEB_ADDR "cd $WEB_DIR && rm -rf $TAR_NAME" } main(){ tarcf_code; tarxf_code; scp_code; reboot; ln_code; } main

#!bin/bash #手動重啟tomcat5 tid=$(ps -ef |grep tomcat5 |grep -v grep |awk '{print $2}') kill -9 $tid sh /usr/local/tomcat5/bin/startup.sh echo `date` $tid "tomcat5 已重啟" >>../reboot.log
gitlab設置
1、創建一個真實項目,從git克隆真實代碼過來。
2、項目--設置---集成,添加jenkins項目地址和token成為一個綁定的Webhooks。
3、gitlab上用webide模擬一下更新代碼,查看jenkins構建狀態和10.227tomcat是否構建成功。
可以看到成功自動構建,其中還有很多需要優化的地方,如有更好的建議,歡迎大家留言~~~
4、如果有報jdbc這類jar包無法下載錯誤,直接拷貝一個jar到相應的目錄,因為這類jar無法自動下載成功
[root@xfg 11.2.0.3]#ls
ojdbc6-11.2.0.3.jar ojdbc6-11.2.0.3.jar.lastUpdated ojdbc6-11.2.0.3.pom.lastUpdated
[root@xfg 11.2.0.3]#pwd
/root/.m2/repository/com/oracle/ojdbc6/11.2.0.3