ci持續集成(轉)

一、持續集成的組成java

  • 用 Ant 或 Maven 等工具創建的自動構建過程
  • 一個代碼存儲庫,好比 CVS 或 Subversion
  • 一個 CI 服務器,好比 Hudson,可是 cron 做業也能夠知足須要
  • 們來詳細討論這些組件。

    自動的構建

    CI 過程會常常集成軟件,這須要經過構建來完成。在 Java 環境中,Ant 是經常使用的構建平臺。可使用 Ant 可靠地自動執行編譯、測試等任務,甚至能夠執行軟件檢查和部署。在掌握了 CI 的全部組件以後,您會發現構建策略是成功的 CI 過程最重要的方面。若是缺乏適當的構建過程,CI 就難以發揮做用。

    源代碼管理

    爲了讓 CI 正確地發揮做用,須要一個源代碼管理(SCM)系統或存儲庫,好比 Subversion 或 CVS。CI 服務器向 SCM 存儲庫查詢代碼修改。在找到修改時,CI 服務器執行簽出(即更新本地沙箱)並執行構建。除了執行得更頻繁以外,構建過程與在本地環境中執行的構建相同。

    CI 服務器

    對於成功的 CI 過程,須要用一個自動的過程監視 SCM 存儲庫並在探測到修改時運行構建,這也很是重要。對於 Java 平臺,有許多可用的 CI 服務器,包括開放源碼軟件和商業產品。它們的基本配置都很類似,適合監視特定的 SCM 並在探測到修改時運行構建。全部 CI 服務器都有本身的優缺點。Hudson 尤爲讓人感興趣,由於它容易配置並且具備強大的插件,這些插件能夠顯示測試結果趨勢等信息。

    二.Hudson 簡介shell

    Hudson 是一種革命性的開放源碼 CI 服務器,它從之前的 CI 服務器吸收了許多經驗教訓。Hudson 最吸引人的特性之一是它很容易配置:很難找到更容易設置的 CI 服務器,也很難找到開箱即用特性如此豐富的 CI 服務器。Hudson 容易使用的第二個緣由是它具備強大的插件框架,因此很容易添加特性。例如,一個 Hudson 插件能夠隨時間的推移跟蹤 FindBugs 和代碼覆蓋。它還能夠報告測試結果的趨勢(來自 JUnit 或 TestNG)以及構建結果和對應的執行時間。數據庫

    Hudson 須要運行 Java 5。若是須要使用 Hudson 附帶的嵌入式容器(Winstone)以外的其餘容器,那麼只需使用一種 Servlet 2.4 容器。對於大多數狀況,Winstone 就足夠了。windows

    三.Hudson使用瀏覽器

    CI 過程的最後一個方面是 CI 服務器自己。CI 服務器在整個開發過程當中的主要做用是控制者:當服務器在代碼存儲庫中探測到修改時,它將運行構建的任務委託給構建過程自己。若是構建失敗了,那麼 CI 服務器將通知相關方面,而後繼續監視存儲庫。它的角色看起來是被動的;可是,它是快速反映問題的關鍵。安全

    安裝 Hudson服務器

    使用 Hudson 的主要好處之一是它的設置很簡單。在最簡單的狀況下,Hudson 只須要兩個步驟:框架

    1. 下載最新的版本(它打包爲一個 WAR 文件)。 hudson官方網址:https://hudson.dev.java.net/
    2. 運行 java -jar hudson.war

    這樣就能夠了。由於下載的是一個 WAR 文件,因此若是願意,能夠將它部署在 Tomcat 或 JBoss 等容器中。這徹底由您本身決定。固然,Hudson 假設在安裝它的機器上運行着 Java 5,並且若是定義了 JAVA_HOME 環境變量,Hudson 就會使用它。(正如前面提到的,Hudson 須要 Java 5。)dom

    在安裝並運行 Hudson 以後(將 WAR 文件部署到 servlet 容器或從命令行執行 java -jar hudson.war),啓動瀏覽器並訪問默認安裝位置。若是經過命令行運行 Hudson 並且您在本地機器上,那麼能夠訪問 http://localhost:8080/eclipse


    若是一切正常(實際上不太可能出問題),應該會看到圖 2 所示的 Hudson 啓動頁面。

    配置 Hudson

    若是訪問 Hudson 主頁的本地實例並單擊左上角的 Manage Hudson 連接,應該會看到圖 3 所示的可配置選項列表。

    圖 3. 配置 Hudson 很是容易

    參數說明:
    system.message 填寫一些說明信息
    Quiet period:hudson定時構建工程的時間(秒)
     :設置hudson登錄的規則(默認爲匿名登錄)
    TCP port for JNLP slave agents:不瞭解JNLP不敢胡寫總之就是三種方式:固定(fixed) 隨機(Radom) 不使用(disabled),使用固定時能夠填入JNLP信息

    security realm:可使用中間件容器,數據庫,LDAP來驗證安全,具體怎樣用法沒用過,之後會有更新,研究中.
    authorized:能夠設置身份的驗證方法:系統用戶,匿名用戶,自定義用戶,還有繼承用戶(此處也在研究中,建議使用匿名用戶)
    JDK installations:設置JDK的安裝路徑
    Shell executable:設置window shell命令
    Ant installation:設置ant 的安裝路徑
    mave installation設置mave的安裝路徑
    cvs executable:設置cvsnt執行進程的路徑(cvs.exe)
    .cvspass file:設置cvsnt管理員文件的路徑(passwd文件)
    e-mail notification:設置當發生錯誤時發送的郵箱地址
    hudson url:就是hudson的默認地址

    還能夠配置服務器的其餘幾個方面,好比向 Hudson 提供一個電子郵件服務器的位置,以便在構建失敗時接收電子郵件。根據您的組織設置電子郵件的方式,可能須要讓系統管理員幫助設置這個特性。設置電子郵件並非必需的;Hudson 還支持以 RSS 做爲通知機制,對於某些人來講,這種方式比電子郵件更好。究竟選擇哪些通知機制徹底取決於您。(注意,這裏說的是 「哪些」,也就是說,能夠同時使用多種通知機制!)

    在 Hudson 中配置項目

    既然 Hudson 已經可以與 SCM 存儲庫通訊了,就該配置項目了。這個示例所用的項目稱爲 solar-ci。在 Hudson 主頁上單擊左上角的 New Job 連接。這時會看到圖 5 所示的屏幕:



    該頁面可使咱們經過hudson來管理cvs裏的一個對應的工程

    Project name:工程名稱

    Description:描述信息

    Discard build:若是選擇此項能夠設置build記錄保存的天數,或者build記錄保存的數理,或者只保存最新的build記錄,通常不需填寫

    Advance project options:能夠設置hudson定時檢查cvs工程的時間間隔,還能夠指定cvs工程check out到本地的工程路徑,通常不須要填寫

    Source code management:咱們選擇cvs將出現如下參數:

    Cvsroot:將寫cvs登錄字符串,格式(:protocol:user:password@host:path),例如: :pserver:cvsadmin:1@127.0.0.1:2401:/CVSNT/Repository,使用cvs必填
     

    Modules:填寫cvs倉庫下的具體工程名, 使用cvs必填

    Branch:填寫分支名稱,也能夠勾選this is a tag,no a branch指定標記名稱
     

    選擇subversion能夠進行相應的subversion設置

    Build trigger能夠設置hudson自動執行的一些動做,build after others projects are built指定hudson構建完成後須要繼續構建的工程名

    Build periodically 根據hudson定義的語法規則來設定自動構建工程的時間間隔

    Post-build actions

    設置一些構建完成後的動做,如放郵件,打包,產生測試報告,產生java doc 等.

    點擊ok保存設置

    使用hudson
    進入剛配置的項目,能夠在左側build history看到歷史的build記錄,點擊build now 能夠手動執行構建動做,完成後能夠經過記錄標記的顏色來看是否出錯,紅色有錯,藍色成功.點擊記錄查看詳細信息,若是有變化hudson將列出類信息
     

    elipse插件應用eclipse updatesite:http://code.google.com/p/hudson-eclipse/從新打開eclipse在windows->preferences下將出現hudson選項,設置默認的hudson url保存.而後選擇windows->open view打開hudson view若是你己經配置hudson項目將列出hudson的項目名稱,右鍵菜單能夠看到全部的執行菜單,使用仍是很方便的,但願你們來完善這篇文章.
相關文章
相關標籤/搜索