2018年06月08日 11:30:23 止步前行 閱讀數:2932程序員
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/zxd1435513775/article/details/80618640web
在平常的開發過程當中,發佈版本的流程通常都是手動部署,具體以下圖所示:
瀏覽器
咱們須要把代碼提交到SVN上,而後再把SVN上每一個人提交的最新模塊的代碼拉下來,而後編譯打包,最後手動上傳到Tomcat上。這種方式很繁瑣,也會浪費時間,若是有測試環境和生產環境,則效率更低。下面介紹一下Jenkins的使用和安裝。tomcat
Jenkins的思想就是自動化部署,「自動化」的具體體如今:當咱們向版本庫(SVN)提交新的代碼後,應用服務器(Tomcat)就會自動從咱們的SVN上拉去新的war包,而後從新部署,用戶或測試人員看到的就是最新的應用程序。
Jenkins的原理圖,以下所示:
服務器
搭建上述持續集成環境能夠把整個構建、部署過程自動化,很大程度上減輕工做量。對於咱們程序員的平常開發來講不會形成任何額外負擔,本身把代碼提交上去以後,服務器上運行的立刻就是最新版本,一切都發生在無形中,是否是很方便。網絡
一、在安裝使用Jenkins以前,要說一下所須要的全部開發環境app
(1)版本控制子系統(SVN):SVN服務器、項目對應版本庫、版本庫中鉤子程序(提交代碼後,觸發Jenkins自動打包並部署到應用服務器) (2)持續集成子系統(存在Jenkins的服務器):JDK、Tomcat、 Maven (3)Jenkins:主體程序、SVN 插件、Maven 插件、Deploy to Web Container 插件 (4)應用發佈子系統(項目的運行環境):JDK、Tomcat
二、在安裝使用Jenkins以前,還有知道環境的配置信息
(1)設置並記錄一下版本庫(SVN)的訪問帳號密碼
特別提示:svnserve.conf 文件中anon-access 必定要打開註釋並設置爲none
(2)設置並記錄Tomcat 服務器(項目運行環境)的訪問帳號密碼,配置文件位置:tomcat/conf/tomcat-users.xml。curl
<role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="tomcat_user" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status" />
三、安裝步驟
(1)Jenkins主體程序安裝配置webapp
1)、把Jenkins.war放在Tomcat解壓目錄/webapps目錄下, 2)、打開Tomcat 解壓目錄/server.xml修改URL地址的編碼解碼字符集tomcat/conf/server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" URIEncoding="UTF-8"/> 3)、啓動Tomcat 並經過瀏覽器訪問:http://192.168.70.131:8080/jenkins
注意:此處的Tomcat是運行Jenkins的Tomcat,不必定是項目所運行的Tomcat,這兩個肯能不是放在一個Tomcat裏。svn
(2)Jenkins安裝
依照提示,查看/root/.jenkins/secrets/initialAdminPassword 文件內容,填入文本框,這裏填入的密文同時也是admin帳號的密碼。
選擇哪一種方式都不會對後續操做有太大影響,由於有須要的插件咱們能夠在後續有針對性的安裝,在這裏選擇「安裝推薦的插件」。
打×的插件是因爲網絡傳輸致使的安裝失敗,後面再從新安裝便可。注意:這個步驟中若是選擇了安裝插件則系統必須可以聯網。
能夠選擇使用admin帳戶繼續,後面有須要仍然有機會註冊新帳戶。
開始使用Jenkins,gogogo~
點擊系統管理。
點保存,繼續配置。
點保存,繼續配置。
安裝插件時受到網絡情況的影響有可能會失敗,沒關係,多試幾回,直到成功。
(3)Jenkins配置項目
特別注意:這裏指定的URL地址必須剛好定位到pom.xml文件的上一級,由於Jenkins就是到項目根目錄下查詢pom.xml。
指定SVN的帳戶密碼,要去前面配置的一致!!!設置完,必定要點add,再選一次。配置好的效果,以下圖:
注意:此時Jenkins 的工做區中尚未代碼,須要執行一次構建操做以後Jenkins 纔會下載代碼。
點擊保存,指定構建操做。
說明:
1)WAR/EAR files:war包以項目根目錄爲基準的相對路徑;
2)Context path:瀏覽器訪問項目時使用的項目名;
3)Containers:選擇與服務器想符合的Tomcat;
這裏的Tomcat指項目運行的Tomcat,用戶名密碼以前配置過!!!
(4)配置觸發鉤子程序,自動構建
遠程觸發的基本原理是:SVN服務器給Jenkins項目特定的URL地址發送請求,但必須以請求參數的形式攜帶一個特定值,這個特定值就是這裏的「身份驗證令牌」。
好比咱們這個項目的地址觸發地址是:http://192.168.63.178:8080/jenkins/job/apple/build
身份驗證令牌是:APPLE_TOKEN
那麼最終的訪問地址就是:http://192.168.63.178:8080/jenkins/job/apple/build?token=APPLE_TOKEN
觸發訪問地址中Jenkins訪問地址是根據實際狀況改變的,項目名稱根據實際狀況改變,其餘都不變。
(5)Linux的curl命令
Linux的curl命令:Linux的curl命令用來發送HTT 請求。
-X 參數:指定請求方式
-v 參數:顯示響應結果
-u 參數:攜帶用戶名/密碼
-H 參數:攜帶請求消息頭信息
(6)獲取crumb 值
這個crumb值也不是必須的,設置該值的步驟以下:
下面是如何生成crumb值
(7)編輯SVN 版本庫中的鉤子程序
1)鉤子程序由post-commit.tmpl複製獲得,這裏注意不要使用任何擴展名。若是按照咱們習慣的使用.sh擴展名則鉤子程序沒法正常工做。 2)記得使用chmod 命令設置爲可執行權限,把原有內容註釋,加入curl命令
(1)在Eclipse中修改並提交svn,在頁面上查看顯示內容變化.
(2)若是發生Jenkins服務器從SVN服務器下載代碼不是最新版的狀況,那麼就在SVN服務器的URL地址後面加上@HEAD強制要求下載最新版。