【轉發】原文鏈接:https://blog.csdn.net/qq_33157666/article/details/86735906
Jenkins自動打包並部署到遠程服務器
一、Jenkins簡介
Jenkins是一個開源軟件項目,是基於Java開發的廣泛用於持續構建的可視化web工具,就是各種項目的的“自動化”編譯、打包、分發部署,將傳統編譯、打包、上傳、部署到Tomcat中的過程交由Jenkins,Jenkins通過給定的代碼地址,將代碼拉取到jenkins宿主機上,進行編譯、打包和發佈到web容器中。Jenkins可以支持多種語言(比如:java、c#、php等等),也兼容ant、maven、gradle等多種第三方構建工具,同時跟git、svn無縫集成,也支持直接與github直接集成。
二、使用Jenkins理由
1、Jenkins安裝方便,配置簡單;
2、可以代替傳統的、繁瑣的打包部署,提高了工作效率。
三、安裝步驟
本例環境:
操作環境:Linux
jdk: 1.8
tomcat: tomcat7
maven: maven3.3.9
1、到jenkins官網http://Jenkins.io/ 下載war包,放入tomcat的webapps目錄下;
2、啓動tomcat;
3、訪問http://192.168.xx.xx/jenkins;
4、看到如圖(1)的頁面,進入指定的文件中獲取到密碼進行登錄;
圖(1)
5、進入如圖(2)的頁面,選擇任意一個按鈕,本例選擇第一個按鈕,進入如圖(3)的頁面安裝插件;
注: 選擇第一個按鈕會自動安裝一些基本的插件;
選擇第二個按鈕不會自動安裝插件。
圖(2)
圖(3)
6、插件安裝完成後進入如圖(4)的頁面,創建一個用戶,輸入登錄名、密碼、全名、郵件,點擊“save and Continue”按鈕;(以後登錄Jenkins使用此用戶登錄)
圖(4)
7、進入如圖(5)的頁面,點擊“Start using Jenkins”按鈕,進入如圖(6)的頁面;
至此,jenkins安裝完成,要使用Jenkins進行打包部署項目請看Jenkins配置。
圖(5)
圖(6)
四、Jenkins配置
1、下載插件
進入“系統管理”–》“插件管理”,下載需要的插件,如圖(7);
圖(7)
2、進入“系統管理”--》“系統設置”頁面,找到“SSH Servers”一欄如圖(8),填入war存放的服務器信息;
點擊“Advanced...”可輸入密碼如圖(9),信息輸入完後點擊“Test Configuration”按鈕,測試能不能連上目標服務器,連接成功點擊保存按鈕即可;
圖(8)
圖(9)
3、進入“系統管理”–》“全局工具配置”,配置jdk和maven的地址如圖(10)和圖(11),配置完點擊保存;
圖(10)
圖(11)
4、進入Jenkins首頁,點擊“New 任務”按鈕如圖(12),進入如圖(13)的頁面,輸入名稱,選擇構建一個maven項目,點擊保存,創建項目完成;
圖(12)
圖(13)
5、進入項目的配置頁面如圖(14),具體的配置可見圖(15);
至此配置完成。
圖(14)
圖(15)
五、打包發佈項目
配置完成後,點擊構建按鈕如圖(16)即可打包發佈項目如圖(17)。
至此,自動打包發佈已完成。
圖(17)
最後,附上shell腳本
- #!/bin/bash
- DATE=`date +%F-%H-%M`
-
- PROJECT_ADMIN='admin'
- PROJECT_SELLER='seller'
- PROJECT_SELLER2='ROOT'
- PROJECT_WAP='wap'
- PROJECT_STATIC='static-1.0.base'
- PROJECT_STATIC2='static'
- PROJECT_UPLOAD='upload'
-
-
- ROOTDIR='/usr/local/tomcat7/webapps/shop-all'
- TOMCAT_HOME='/usr/local/tomcat7'
-
- #停止tomcat服務
- #echo '停止test-tomcat-01'
- sh ${TOMCAT_HOME}/bin/shutdown.sh
- ps -ef | grep ${TOMCAT_HOME}/ | grep -v grep| awk '{print $2}' | xargs kill -9
-
- #備份
- cp ${TOMCAT_HOME}/webapps/${PROJECT_ADMIN}.war /usr/local/tomcat7/bak/${PROJECT_ADMIN}.war
- cp ${TOMCAT_HOME}/webapps/${PROJECT_SELLER2}.war /usr/local/tomcat7/bak/${PROJECT_SELLER2}.war
- cp ${TOMCAT_HOME}/webapps/${PROJECT_WAP}.war /usr/local/tomcat7/bak/${PROJECT_WAP}.war
- cp ${TOMCAT_HOME}/webapps/${PROJECT_STATIC2}.war /usr/local/tomcat7/bak/${PROJECT_STATIC2}.war
- cp ${TOMCAT_HOME}/webapps/${PROJECT_UPLOAD}.war /usr/local/tomcat7/bak/${PROJECT_UPLOAD}.war
-
- #刪除舊項目
- rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_ADMIN}
- rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_SELLER2}
- rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_WAP}
- rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_STATIC2}
- rm -rf ${TOMCAT_HOME}/webapps/${PROJECT_UPLOAD}
-
-
- #將新的war包放入tomcat中
- mv ${ROOTDIR}/shop-web-admin/target/${PROJECT_ADMIN}.war ${TOMCAT_HOME}/webapps/${PROJECT_ADMIN}.war
- mv ${ROOTDIR}/shop-web-seller/target/${PROJECT_SELLER}.war ${TOMCAT_HOME}/webapps/${PROJECT_SELLER2}.war
- mv ${ROOTDIR}/shop-web-wap/target/${PROJECT_WAP}.war ${TOMCAT_HOME}/webapps/${PROJECT_WAP}.war
- mv ${ROOTDIR}/shop-web-static/target/${PROJECT_STATIC}.war ${TOMCAT_HOME}/webapps/${PROJECT_STATIC2}.war
- mv ${ROOTDIR}/shop-web-upload/target/${PROJECT_UPLOAD}.war ${TOMCAT_HOME}/webapps/${PROJECT_UPLOAD}.war
-
- #移除文件
- rm -rf ${ROOTDIR}
-
- #啓動tomcat服務
- #echo '啓動test-tomcat-01'
- sh ${TOMCAT_HOME}/bin/startup.sh
<div class="person-messagebox">
<div class="left-message"><a href="https://blog.csdn.net/qq_33157666">
<img src="https://profile.csdnimg.cn/9/E/8/3_qq_33157666" class="avatar_pic" username="qq_33157666">
</a></div>
<div class="middle-message">
<div class="title"><span class="tit "><a href="https://blog.csdn.net/qq_33157666" data-report-click="{"mod":"popu_379","ab":"new"}" target="_blank">幸福棒棒糖__fxx</a></span>
<!-- 等級,level -->
<img class="identity-icon" src="https://csdnimg.cn/identity/blog5.png"> </div>
<div class="text"><span>原創文章 58</span><span>獲贊 107</span><span>訪問量 18萬+</span></div>
</div>
<div class="right-message">
<a class="btn btn-sm bt-button personal-watch" data-report-click="{"mod":"popu_379","ab":"new","extend1":"個人信息未關注"}">關注</a>
<a href="https://im.csdn.net/im/main.html?userName=qq_33157666" target="_blank" class="btn btn-sm bt-button personal-letter">私信
</a>
</div>
</div>
</div>
</article>