持續整合工具hudson

來源:互聯網
上載者:User

一.什麼是持續整合

持續整合的核心概念

CI過程會經常構建軟體 組件;在許多情況下,每當原始碼 存放庫(比如 Subversion 或ClearCase)中的代碼發生變化時,都要構建軟體組件。CI的好處是:經常構建軟體可以確保儘早遇到問題(比如代碼缺陷),避免問題在軟體開發 周期晚期變複雜時才被發現。

工具 與過程

儘管 CI 實際上是一個過程,但是持續整合 這個詞常常與一個或多個工具相關聯。在本教程中,講解如何安裝、配置和使用 Hudson 作為 CI 伺服器 ,但是要記住,CI遠不只是個工具。實際上,使用的工具可能是 CI 比較次要的方面,因為 CI工具所做的僅僅是在代碼存放庫中探測到修改時運行構建。構建過程本身比用來運行它的工具重要得多。

開始使用 CI

開始使用 CI 需要三個組件:

  • 用 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 簡介

Hudson 是一種革命性的開放源碼 CI 伺服器,它從以前的 CI伺服器吸取了許多經驗 教訓。Hudson 最迷人的特性之一是它很容易配置:很難找到更容易設定的 CI 伺服器,也很難找到開箱即用特性如此豐富的CI 伺服器。Hudson 容易使用的第二個原因是它具有強大的外掛程式架構 ,所以很容易添加特性。例如,一個 Hudson 外掛程式可以隨時間的推移跟蹤FindBugs 和代碼覆蓋。它還可以報告測試結果的趨勢(來自 JUnit 或 TestNG)以及構建結果和對應的執行時間。

Hudson 需要運行 Java 5。如果需要使用 Hudson 附帶的嵌入式 容器(Winstone)之外的其他容器,那麼只需使用一種 Servlet 2.4 容器。對於大多數情況,Winstone 就足夠了。

三.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。)

在安裝並運行 Hudson 之後(將 WAR 檔案部署到 servlet 容器或從命令列執行java -jar hudson.war ),啟動瀏覽器並訪問預設安裝位置。如果通過命令列運行 Hudson 而且您在本地機器上,那麼可以訪問http://localhost:8080/ 。

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

配置 Hudson

如果訪問 Hudson 首頁的本地執行個體並單擊左上方的 Manage Hudson 連結,應該會看到圖 3 所示的可配置選項列表。

圖 3. 配置 Hudson 非常容易

參數說明:

system.message 填寫一些說明資訊

Quiet period:hudson定時構建工程的時間(秒)

Enable security:設定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的項目名稱,右鍵菜單可以看到所有的執行菜單,使用還是很方便的,希望大家來完善這篇文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.