天天看點

建構基于Jenkins+maven+git+tomcat7的持續內建環境

1 Jenkins的安裝與配置

1.1 Jenkins安裝

(1)下載下傳最新的版本(一個 WAR 檔案)。Jenkins官方網址: http://Jenkins-ci.org/

(2)運作 java -jar jenkins.war,直接在浏覽器位址欄中輸入http://localhost:8080即可通路。(Jenkins預設運作在8080端口,如果要改變端口,可以java -jar jenkins.war –httpPort=8081)

注意:Jenkins 需要運作 Java 5以及以上的版本。

還有一種安裝方式就是将下載下傳的war封包件部署到 servlet 容器,然後啟動容器,在浏覽器的URL位址欄中輸入類似http://localhost:8080/jenkins/這樣的位址即可。下圖是安裝成功後的界面(使用的是Windows+Tomcat7+Java7環境):

建構基于Jenkins+maven+git+tomcat7的持續內建環境

1.2 Jenkins的配置

1.2.1系統管理

在已運作的Jenkins首頁中,點選左側的系統管理進入如下界面:
           
建構基于Jenkins+maven+git+tomcat7的持續內建環境
1.2.1.1提示資訊
Ps:版本不同提示的消息有可能不同  
           
  • 新的版本
    建構基于Jenkins+maven+git+tomcat7的持續內建環境
    提示有新的版本可以下載下傳
  • 安全設定
    建構基于Jenkins+maven+git+tomcat7的持續內建環境
    詹金斯允許網絡上的任何人代表您啟動程序。考慮至少啟用身份驗證來阻止濫用。點選Dismiss忽略該消息,點選Setup Security進入設定界面.詳細設定請參考 Configure Global Security(安全設定) 章節
1.2.1.2系統設定
在已運作的Jenkins首頁中,點選左側的系統管理—>系統設定進入如下界面: 
           
建構基于Jenkins+maven+git+tomcat7的持續內建環境
  • JDK, Maven, Git配置
    配置一個JDK、git、Maven執行個體,請在每一節下面單擊Add(新增) 按鈕,這裡将添加執行個體的名稱和絕對位址
               
    建構基于Jenkins+maven+git+tomcat7的持續內建環境

    JDK别名:随便寫

    JAVA_HOME:這個是本機JDK的安裝路徑(錯誤的路徑會有紅字提示)

    自動安裝:不推薦這個選項

    後面Git與Maven的配置是一樣的,自己下載下傳安裝在本地。

建構基于Jenkins+maven+git+tomcat7的持續內建環境
建構基于Jenkins+maven+git+tomcat7的持續內建環境

git在安裝插件後才會出現,具體參考插件安裝章節。

  • 郵件通知配置

    配置發件人位址

    建構基于Jenkins+maven+git+tomcat7的持續內建環境
    配置郵件通知
    建構基于Jenkins+maven+git+tomcat7的持續內建環境

配置完成後可以測試:

建構基于Jenkins+maven+git+tomcat7的持續內建環境

這樣表示郵件配置成功。

ps:郵箱設定僅供參考,不同的郵箱SMTP設定不一樣,Jenkins URL也根據自己的設定。

1.2.1.3 Configure Global Security(安全設定)

在已運作的Jenkins首頁中,點選左側的系統管理—>Configure Global Security進入如下界面:
           
建構基于Jenkins+maven+git+tomcat7的持續內建環境

設定如上圖,儲存後系統管理中就出現管理使用者的選項。頁面右上角也會出現登入/注冊的選項。

1.2.1.4 管理使用者設定

在右上角點選注冊

建構基于Jenkins+maven+git+tomcat7的持續內建環境

點選sign up按鈕,提示你現在已經登入.傳回首頁.

登入後和匿名賬号看到的首頁有幾點不同,如下圖紅框所示:

建構基于Jenkins+maven+git+tomcat7的持續內建環境

1.2.1.5 管理插件設定

閱讀Jenkins插件章節後,再回來安裝如下的插件
(1)GitHub plugin
    This plugin integrates Jenkins with Github projects.
    github插件
(2)Deploy to container Plugin
    This plugin allows you to deploy a war to a container after a successful build.Glassfish 3.x remote deployment 
    這個插件将生成的構件(war或者ear)部署到主流的伺服器上
(3)GIT plugin
    This plugin integrates GIT with Jenkins. 
    git插件
           

2 建構項目

2.1 建構maven+git+tomcat項目

2.1.1 建立maven項目

建構基于Jenkins+maven+git+tomcat7的持續內建環境

這時,需要為新的建構任務指定一個名稱。(這裡輸入的任務名稱為:maven_test)這裡有幾種的任務類型可供選擇,鑒于初步介紹,先選擇建構一個maven項目。對于其他的類型,經常使用的是拷貝已存在任務;這主要為了能在現有的任務基礎上建立任務。點選OK按鈕,

  • 建構任務配置
    建構基于Jenkins+maven+git+tomcat7的持續內建環境
  • 源碼管理
    建構基于Jenkins+maven+git+tomcat7的持續內建環境
    在”源碼管理->Git”下的Repository URL輸入Repository的Git位址(PS:可以選擇分支)。
  • 觸發器設定
    建構基于Jenkins+maven+git+tomcat7的持續內建環境
    在”建構觸發器”中選擇”Build when a change is pushed to GitHub “和”Poll SCM “,這兩項的作用分别是當GitHub有版本庫更新時觸發Jenkins進行建構和定期檢查版本庫是否有更新,如果有更新則觸發Jenkins進行建構。這裡要注意Schedule文法,例如”H/2 * * *”表示每隔2分鐘檢查一次。
  • maven建構設定
    建構基于Jenkins+maven+git+tomcat7的持續內建環境
    Root POM根據自己設定,如果有錯,會出現紅色提示。
  • 郵件通知設定
    建構基于Jenkins+maven+git+tomcat7的持續內建環境
    在Recipients中輸入收件人郵件位址,如果用多個收件人用“,”英文逗号隔開。由于前面系統設定的時候已經設定好郵件字尾了,是以現在就不用寫了。
  • war包部署到tomcat設定

    首先你必須安裝好Deploy Plugin插件,然後在tomcat的conf目錄配置tomcat-users.xml檔案,在節點裡添加如下内容:

<role rolename="manager-gui"/>

<role rolename="manager-script"/>

<role rolename="manager-jmx"/>

<role rolename="manager-status"/>

<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
           
引号裡的username和password可以随便替換,待會要用的。
           
建構基于Jenkins+maven+git+tomcat7的持續內建環境
選擇Deploy war/ear to a container
           
建構基于Jenkins+maven+git+tomcat7的持續內建環境
WAR/EAR files:war檔案的存放位置,如:target/SpringDemo.war 注意:相對路徑,根據自己的配置看是否target前面要加項目名。
Context path:通路時需要輸入的内容,如test通路時如下:http://192.168.x.x:8080/test/,如果為空,預設是war包的名字。

Container:選擇你的web容器,如tomca 7.x

Manager user name:填入tomcat-users.xml配置的username内容

Manager password:填入tomcat-users.xml配置的password内容

Tomcat URL:填入http://192.168.x.x:8080/

Deploy on failure:建構失敗依然部署,一般不選擇
           

注意:雖然這種部署方法可能會導緻tomcat加載時出現卡死的現象。但是也是最簡單的部署方式。如果卡死了重新開機下就好了,将tomcat的java記憶體參數調高可以解決這個問題。

到此一個項目的擷取源碼,打包,遠端部署,郵件通知就完成了。

2.1.2 監控

在工作區域的左邊菜單上點“立即建構”,開始建構項目
建構完成後可以在項目中看到項目建構的具體資訊,如工作區、變更集和每次建構的控制台輸出等。
           

開始建構

建構基于Jenkins+maven+git+tomcat7的持續內建環境

一旦建構完成後,你可以在Jenkins的控制台上看到它,如下圖。

建構基于Jenkins+maven+git+tomcat7的持續內建環境

在上面展示的截圖中,您将注意到有兩個圖示描述目前作業的狀态。S欄目代表着“最新建構狀态”,W欄目代表着“建構穩定性”。

Jenkins使用這兩個概念來介紹一個作業的總體狀況:

  • 建構狀态:下圖中分級符号概述了一個Job新近一次建構會産生的四種可能的狀态:

    Successful:完成建構,且被認為是穩定的。

    Unstable:完成建構,但被認為不穩定。

    Failed:建構失敗。

    Disabled:建構已禁用。

    建構基于Jenkins+maven+git+tomcat7的持續內建環境
  • 建構穩定性: 當一個Job中建構已完成并生成了一個未釋出的目标構件,如果您準備評估此次建構的穩定性,Jenkins會基于一些後處理器任務為建構釋出一個穩健指數 (從0-100 ),這些任務一般以插件的方式實作。它們可能包括單元測試(JUnit)、覆寫率(Cobertura )和靜态代碼分析(FindBugs)。分數越高,表明建構越穩定。下圖中分級符号概述了穩定性的評分範圍。任何建構作業的狀态(總分100)低于80分就是不穩定的。
    建構基于Jenkins+maven+git+tomcat7的持續內建環境
    在目前Job主界面也可看到。
    建構基于Jenkins+maven+git+tomcat7的持續內建環境
    左側欄的連結主要控制Job的配置、删除作業、建構作業。右邊部分的連結指向最新的項目報告和構件。
    通過點選建構曆史(Build History)中某個具體的建構連結,您就能跳轉到Jenkins為這個建構執行個體而建立的建構首頁上。如下圖
               
    建構基于Jenkins+maven+git+tomcat7的持續內建環境

如果你想通過視圖輸出界面來監控目前任務的進展情況。你可以單擊Console Output(控制台輸出)。如果工作已完成,這将顯示建構腳本産生的靜态輸出;如果作業仍然在運作中,Jenkins将不斷重新整理網頁的内容,以便您可以看到它運作時的輸出。如下圖:

建構基于Jenkins+maven+git+tomcat7的持續內建環境

3 Jenkins插件

3.1 Jenkins插件安裝

從Jenkins現有的功能擴充或開發者們為Jenkins提供的新功能都可以稱之為Jenkins插件。  
    Jenkins 插件管理器允許您安裝新的插件,和更新您Jenkins伺服器上的插件。管理者将連接配接到聯機資料庫,檢索可用的和已更新的插件。如果您的Jenkins伺服器無法直接連接配接到外部資源,您可以從Jenkins網站上下載下傳或者翻牆。
           

在已運作的Jenkins首頁中,點選左側的系統管理—>管理插件進入如下界面:

建構基于Jenkins+maven+git+tomcat7的持續內建環境

它包含四個标簽:

  • 更新:清單中列示了Jenkins為某些插件搜尋到了可用的更新。列出的每個插件可以被選擇并應用更新。
  • 可選安裝:清單中列示了可用于安裝(而不是目前已安裝的)的所有插件。列出的每個插件都可以被選擇并安裝。
  • 已安裝:清單中列示了已經安裝的插件。
  • 進階:允許您通過設定HTTP代理的方式使Jenkins與線上插件庫建立連接配接。此外,還提供了一個上傳裝置,可以安裝你在Jenkins以外已下載下傳的那些插件。

如果想安裝新的插件,可以點選tab分頁中的可選插件。如下圖:

建構基于Jenkins+maven+git+tomcat7的持續內建環境
從圖可知,各種Jenkins插件根據之前所記述的類型進行分門别類。可勾選任意想安裝的Jenkins插件,點選直接安裝按鈕進行安裝。安裝後,所有插件以hpi作為字尾名放置在plugins檔案夾下。如果是進階使用者還可以自行開發插件友善具體項目使用。
           

注意:安裝完成後需要重新開機Jenkins部署的容器。這樣才能使用新裝的插件。