Jenkins+Maven+SVN快速搭建持續集成環境


http://www.cnblogs.com/sunzhenchao/archive/2013/01/30/2883289.html
http://blog.csdn.net/pein_zero/article/details/52597615

前言

     在安裝之前,我想說明一下本文的目的,jenkins的一款持續集成工具,
     它可以做的事情很多,其中一個主要的功能就是簡化部署流程
   
     回想一下我們的發布流程:
          1.本地把項目打包
          2.通過FTP等工具,傳輸到服務器
          3.關閉tomcat,把打包的項目放到webapp目錄下
          4.啟動tomcat
 
     如果每次都這么搞的話,不僅慢,而且容易出錯。
   
     有了jenkins以后,發布流程可以是這樣:
          1.用戶在jenkins上點擊某個按鈕進行發布
          2.jenkins收到發布命令
          3.jenkins從SVN上把源代碼download下來
          4.jenkins根據你設置的mvn命令進行打包
          5.jenkins把你打包的好的war工程傳輸到tomcat的webapps目錄下
          6.tomcat啟動
 
     對於程序員而言,只要做兩件事:
          1.在jenkins上配置某個項目的部署流程
          2.在jenkins上點擊某個項目的部署按鈕,進行一鍵部署

   實際上,配置往往只做一次,其余的時候,你只要一鍵部署就可以了

一、安裝jenkins

       1.下載JENKINS
          首先去jenkins官網下載jenkins,官網有兩個下載的選擇:
          如果是公司使用,建議選擇左邊的。
          如果是個人使用,可以使用右邊的
 
          如果要下載安裝版本,點擊下拉箭頭,windows是exe,linux是rpm包
          如果要下載war包,直接點擊,不要點下拉箭頭,我下載的是war包
 

 
       2.設置JENKINS_HOME
              下載完成以后,最好先設置JENKINS_HOME;
              否則,對於windows系統,會默認裝在C盤
              linux系統不清楚默認在哪里
              但是你設置了以后,就會在你想要的位置,生成jenkins的東西
              關於設置HOME,跟設置JAVA_HOME一樣,windows就不說了,linux的話,也是跟JAVA一樣,修改/etc/profie文件即可
 
       3.啟動JENKINS
              使用war包的同學跟其它工程一樣,放到tomcat下,啟動tomcat即可。
              使用安裝包的同學,windows下,在服務中啟動,跟mysql、oralce服務的啟動是一樣的,linux的同學自行研究
 
              啟動tomcat時會報錯:
              
 
              這是因為jenkins不知道從什么時候開始,把http訪問改成了https,但war包的配置文件卻沒有改,
              不過這不影響你啟動和訪問,在后面的操作中,我們會改

       4.訪問JENKINS

             在瀏覽器中輸入http://127.0.0.1:8080/jenkins,就進入到jenkins了,具體ip和端口,根據你實際的環境來
              
             首先是輸入初始密碼,這個有提示,跟着提示找到文件,找到密碼,輸入即可
 
             其次就是進入插件選擇頁面:

              我選擇了Skip Plugin Installations,我跳過了插件的初始化,事實上,我並不想跳過。
              如果不跳過,jenkins是有一個讓你安裝推薦插件的選項的。
              
              但是因為啟動的那個異常,jenkins把獲取插件的地址從http改成了https,而war包沒有改
              導致你點擊“推薦插件下載”的按鈕時,根本沒用。
              
              所以只能跳過了,后面我們可以自己裝插件
 
              接下來就是創建一個admin用戶,注意,創建完之后,之前的admin帳號會消失,初始密碼的文件也不復存在了
              所以,你這里輸入的用戶名,可以就是 admin
 
              創建完成以后,就完成了Jenkins的安裝和啟動
 
二、安裝插件
 
       1. 修改連接地址
 
              左側點擊系統管理,右側選擇管理插件,
 
              

               
              選擇“高級“面板:
 
 
 
 
               

              拉下來,把http,改成https,點擊“提交”,再點擊“立即獲取”  
 

 2.安裝MAVEN插件
              為什么要安裝maven插件?你點一下新建,是不是下面這個圖
              

              如果之前你用過別人的jenkins的話,舊版的這里是有個創建maven 2/3項目,這么一個選項的,新版這里也是能選擇創建maven項目的
              你沒有,是因為你沒有安裝maven插件,所以要安裝maven插件,這樣才能構建maven項目
 
              還是,系統管理——插件管理——可選插件
              這個時候,你應該是可以看到可選插件列表了,因為之前的操作,我們已經正確的修改了站點的url
 
              在過濾中,輸入maven,找到maven integration plugins:
              
 
 
 
              勾選,安裝,等待一些時間以后,你會發現安裝出錯了
              
              不要緊,看詳細信息
              

              大致的意思就是,文件的簽名驗證不正確,不管它,注意看這個紅色的路徑。找到這個文件,打開它
              
 
               把這個路徑復制下來,放到瀏覽器,就可以把這個插件下載下來。
               我的建議是,在本地建一個jenkins的關於maven插件的目錄,把跟maven相關的插件都放到這個目錄下
                           
               其它幾個插件也一一找到對應的文件,找到url,下載
               然后手動上傳插件。上傳插件的在:系統管理——管理插件——高級,你可以看到上傳插件的地方
              
               注意,上傳的順序,要跟報錯的順序一樣,因為這些插件都是有依賴的先后順序的
               不過即使順序錯了也沒關系,系統會提示你的:
              
 
               安裝完畢以后,你就可以創建maven項目了

       3. 安裝SVN插件
               安裝SVN插件的方式跟安裝Maven插件的方式是一樣的,SVN插件的名字叫做:Subversion Plug-in
               安裝完SVN后,你在新建項目的時候,源碼管理這里就多出一個Subversion的選項
       
       4. 安裝Deploy插件
               安裝Deploy插件的方式跟安裝Maven插件的方式還是一樣的,Deploy插件的名字叫做:Deploy to container Plugin
               安裝完SVN后,你在新建項目的時候,構建后操作這里,下拉選項里會多出一項Deploy war/ear to a container

 
三、創建構建項目
 
       1. 配置JDK和MAVEN
              在創建項目之前,先要配置JDK和Maven
              點擊,系統管理——Global Tool Configuration  
 
              
仿照下面的圖配置就可以
 
 
               
       仿照我上面的方式,寫入你自己的配置就可以
 
2 . 創建構建項目
    廢話不多說了,仿照我下面的配置就可以了   

 
 
 
               這里說明下,             
               第一個是SVN的地址,
               第二個是Credentials,其實就是你的SVN帳號和密碼,一開始這里肯定是沒有的,需要你點擊add添加

 
               把你的SVN帳號和密碼加進去就好了
 

 
 

 
 
 
 

 
 

 
 
 
              
這里需要說明下,構建后操作,把通過maven命令打好的war包,copy到tomcat中,
這要求tomcat開啟熱部署,說白了就是在tomcat的conf目錄下的tomcat-users.xml中加入tomcat的用戶密碼
              
 
              上面面這段話,你可以完全照抄,當然用戶名和密碼根據你自己的需要來配置
              這里設置的用戶名和密碼,必須和你填入上面Deploy to cotainer板塊中的Manager user name和password一致
              另外,關於Deploy插件,雖然寫着只支持到tomcat7.x,但實際上,8.x的tomcat它照樣可以支持
 
3 . 開始構建  
          
              至此,一個構建項目創建完畢,趕緊點一下構建按鈕試試吧:
 
 
 
 
 
 
 
 
變更:上面的方式,最后的部署采用的是tomcat的熱部署,這種方式有一個極大的弊端,就是發布多次之后,內存會持續上漲。
所以這並不是一種好的方式。
一種更加好的方式是使用腳本,將tomcat關閉,然后把webapps下的舊的部署應用刪除,再把新的war包放過來,然后啟動

所以,我們這里需要用到另外一個插件:PostBuildScript:
 
 
只要把你自己寫好的shell腳本放進來就可以了。
當然這里需要你對shell編程有一些了解

關於這個deploy.sh的實現,大家可以參考這篇文章:http://www.linuxidc.com/Linux/2016-01/127258.htm

===============================俺是分割線=====================================

一、安裝Jenkins

地址http://mirrors.jenkins-ci.org/下載適合的Jenkins版本。

Windows最新穩定版的Jenkins地址為:http://mirrors.jenkins-ci.org/windows-stable/jenkins-1.409.1.zip

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service

把Jenkins 1.409.1版解壓,把得到的war包直接扔到tomcat下,啟動tomcat,Jenkins就安裝完畢,是不是很簡單啊。

二、配置Jenkins

1、打開http://10.3.15.78:8080/jenkins/,第一次進入里面沒有數據,我們需要創建job,我們這有2個項目,需要創建2個job。http://10.3.34.163:9890/jenkins/

2、點擊左上角的new job,在new job頁面需要選擇job的類型,Jenkins支持幾種類型,我們選擇“構建一個maven2/3項目”,Job名為:guan_caijing,如圖所示:

image

3、點擊OK按鈕后,進會進入詳細配置界面,詳細配置界面的配置項很多,不過不用怕,大部分使用默認配置就可以了,下面就說說我們需要修改的幾個地方:

3.1)Source Code Management

因為我們使用SVN管理源碼,所以這里選擇Subversion,並在Repository URL中輸入我們的SVN地址:

http://10.3.34.163:9880/guan_caijing/trunk/

輸入SVN庫的URL地址后,Jenkins會自動驗證地址,並給予提示。

clip_image004

點擊紅色字體部分的enter credential鏈接,進入如下頁面:

clip_image006

設置好訪問SVN庫的用戶名和密碼后,點擊OK按鈕,顯示:

clip_image008

說明設置成功。點擊Close按鈕,返回之前的Source Code Management頁面。此時不再有紅色警告信息了。

clip_image010

3.2)配置自動構建的計划,假設我們想讓項目中每天12點和晚上8點自動構建一次,只需要在Build Triggers中選擇Build periodically,並在Schedule中輸入 0 12,20 * * *

我配置的是每晚8點自動構建

clip_image012

注:Schedule的配置規則是有5個空格隔開的字符組成,從左到右分別代表:分 時 天 月 年。*代表所有,0 12,20 * * * 表示“在任何年任何月任何天的12和20點0分”進行構建。

3.3)配置到這里,可能有人發現在Build配置節點,有紅色錯誤信息,提示

Jenkins needs to know where your Maven2 is installed. 
Please do so from the system configuration.

如圖所示:

clip_image014

這是因為Jenkins找不到maven的原因,點擊"system configuration",是system configuration的maven配置中添加maven目錄就OK,如下圖:

clip_image016

我設置了JRE 6和MAVEN 3的安裝目錄。

點擊左下角的SAVE按鈕,保存設置。

3.4)保存好所有配置后,我們第1個job就算是完成了。

3.5)創建第2個job,配置和上面的配置相同。只需把svn地址改成:http://localhost/svn/Web

三、手動構建

在經過上面的配置后,回到Jenkins首頁,在首頁可以看到剛才添加的2個job,如下圖:

clip_image018

點擊某1個job后后面的"Schedule a build"圖片手動構建,點擊完后,會在左邊的Build Queue或者Build Executor Status 顯示正在構建的任務,在自動構建完后,刷新頁面,就可以看到構建結果了,如何某個項目構建失敗,點擊項目后面的構建數字(從1開始遞增)進入項目的"Console Output "可以查看項目構建失敗的原因。當然我們也可以配置把構建失敗的結果發到郵箱。

到目前為止,1個簡單的自動構建環境就搭建好了,很簡單吧。

四、自動部署

看完上面發現Jenkins配置真的很簡單,幾分鍾就搭建好自動構建環境,但環境搭建好后發現1個問題,現在是能自動構建了,但是構建好的web.war都還是在Jenkins目錄下,並沒有發布到tomcat中,還需要手動copy過去?

這是個問題,不過別急,要達到自動部署的目的,需要安裝1個Jenkins的部署插件。選擇“系統管理”菜單的“管理插件”:

clip_image020

選擇“可選插件”,找到Deploy Plugin 1.8插件,選擇它。

clip_image022

注:Deploy Plugin 1.8插件支持Tomcat 4.x/5.x/6.x/7.x ,JBoss 3.x/4.x ,Glassfish 2.x/3.x

點擊底部的“安裝”按鈕,顯示:

clip_image024

耐心等待:

clip_image026

直到Deploy Plugin完成,顯示Success:

clip_image028

選擇框打鈎,Jenkins會自動重啟:

clip_image030

此時,在插件管理的“已安裝”Tab頁,可以看到部署插件已安裝完畢。

clip_image032

重新進入web的configure 配置界面,在最下面會發現多處1個配置項,我們配置如下:

clip_image034

注:war file使用的是Jenkinsworkspace的相對目錄,hudon默認的目錄在:

C:\Documents and Settings\用戶名\.Jenkins\

workspace目錄:C:\Documents and Settings\用戶名\.Jenkins\ jobs\web\workspace\

最終產生的war在:C:\Documents and Settings\用戶名\.Jenkins\ jobs\web\workspace\Web\target\web.war

保存配置再重新構建一次,打開tomcat的webapps目錄,發現web.war終於過來了,大功告成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM