<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    小程人生

    統(tǒng)計

    留言簿(2)

    閱讀排行榜

    評論排行榜

    持續(xù)集成工具hudson

    一.什么是持續(xù)集成

    持續(xù)集成的核心概念

    CI 過程會經(jīng)常構建軟件組件;在許多情況下,每當源代碼存儲庫(比如 Subversion 或 ClearCase)中的代碼發(fā)生變化時,都要構建軟件組件。CI 的好處是:經(jīng)常構建軟件可以確保盡早遇到問題(比如代碼缺陷),避免問題在軟件開發(fā)周期晚期變復雜時才被發(fā)現(xiàn)。

    工具與過程

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

    開始使用 CI

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

    • 用 Ant 或 Maven 等工具建立的自動構建過程
    • 一個代碼存儲庫,比如 CVS 或 Subversion
    • 一個 CI 服務器,比如 Hudson,但是 cron 作業(yè)也可以滿足需要

    我們來詳細討論這些組件。

    自動的構建

    CI 過程會經(jīng)常集成軟件,這需要通過構建來完成。在 Java 環(huán)境中,Ant 是常用的構建平臺。可以使用 Ant 可靠地自動執(zhí)行編譯、測試等任務,甚至可以執(zhí)行軟件檢查和部署。在掌握了 CI 的所有組件之后,您會發(fā)現(xiàn)構建策略是成功的 CI 過程最重要的方面。如果缺少適當?shù)臉嫿ㄟ^程,CI 就難以發(fā)揮作用。

    源代碼管理

    為了讓 CI 正確地發(fā)揮作用,需要一個源代碼管理(SCM)系統(tǒng)或存儲庫,比如 Subversion 或 CVS。CI 服務器向 SCM 存儲庫查詢代碼修改。在找到修改時,CI 服務器執(zhí)行簽出(即更新本地沙箱)并執(zhí)行構建。除了執(zhí)行得更頻繁之外,構建過程與在本地環(huán)境中執(zhí)行的構建相同。

    CI 服務器

    對于成功的 CI 過程,需要用一個自動的過程監(jiān)視 SCM 存儲庫并在探測到修改時運行構建,這也非常重要。對于 Java 平臺,有許多可用的 CI 服務器,包括開放源碼軟件和商業(yè)產(chǎn)品。它們的基本配置都很相似,適合監(jiān)視特定的 SCM 并在探測到修改時運行構建。所有 CI 服務器都有自己的優(yōu)缺點。Hudson 尤其讓人感興趣,因為它容易配置而且具有強大的插件,這些插件可以顯示測試結果趨勢等信息。

    二.Hudson 簡介

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

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

    三.Hudson使用

    CI 過程的最后一個方面是 CI 服務器本身。CI 服務器在整個開發(fā)過程中的主要作用是控制者:當服務器在代碼存儲庫中探測到修改時,它將運行構建的任務委托給構建過程本身。如果構建失敗了,那么 CI 服務器將通知相關方面,然后繼續(xù)監(jiān)視存儲庫。它的角色看起來是被動的;但是,它是快速反映問題的關鍵。

    安裝 Hudson

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

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

    這樣就可以了。因為下載的是一個 WAR 文件,所以如果愿意,可以將它部署在 Tomcat 或 JBoss 等容器中。這完全由您自己決定。當然,Hudson 假設在安裝它的機器上運行著 Java 5,而且如果定義了 JAVA_HOME 環(huán)境變量,Hudson 就會使用它。(正如前面提到的,Hudson 需要 Java 5。)

    在安裝并運行 Hudson 之后(將 WAR 文件部署到 servlet 容器或從命令行執(zhí)行 java -jar hudson.war),啟動瀏覽器并訪問默認安裝位置。如果通過命令行運行 Hudson 而且您在本地機器上,那么可以訪問 http://localhost:8080/


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

    配置 Hudson

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

    圖 3. 配置 Hudson 非常容易

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

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

    還可以配置服務器的其他幾個方面,比如向 Hudson 提供一個電子郵件服務器的位置,以便在構建失敗時接收電子郵件。根據(jù)您的組織設置電子郵件的方式,可能需要讓系統(tǒng)管理員幫助設置這個特性。設置電子郵件并不是必需的;Hudson 還支持以 RSS 作為通知機制,對于某些人來說,這種方式比電子郵件更好。究竟選擇哪些通知機制完全取決于您。(注意,這里說的是 “哪些”,也就是說,可以同時使用多種通知機制!)

    在 Hudson 中配置項目

    既然 Hudson 已經(jīng)能夠與 SCM 存儲庫通信了,就該配置項目了。這個示例所用的項目稱為 solar-ci。在 Hudson 主頁上單擊左上角的 New Job 鏈接。這時會看到圖 5 所示的屏幕:



    該頁面可以使我們通過hudson來管理cvs里的一個對應的工程

    Project name:工程名稱

    Description:描述信息

    Discard build:如果選擇此項可以設置build記錄保存的天數(shù),或者build記錄保存的數(shù)理,或者只保存最新的build記錄,一般不需填寫

    Advance project options:可以設置hudson定時檢查cvs工程的時間間隔,還可以指定cvs工程check out到本地的工程路徑,一般不需要填寫

    Source code management:我們選擇cvs將出現(xiàn)以下參數(shù):

    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自動執(zhí)行的一些動作,build after others projects are built指定hudson構建完成后需要繼續(xù)構建的工程名

    Build periodically 根據(jù)hudson定義的語法規(guī)則來設定自動構建工程的時間間隔

    Post-build actions

    設置一些構建完成后的動作,如放郵件,打包,產(chǎn)生測試報告,產(chǎn)生java doc .

    點擊ok保存設置

    使用hudson
    進入剛配置的項目,可以在左側build history看到歷史的build記錄,點擊build now 可以手動執(zhí)行構建動作,完成后可以通過記錄標記的顏色來看是否出錯,紅色有錯,藍色成功.點擊記錄查看詳細信息,如果有變化hudson將列出類信息


    elipse插件應用
    eclipse updatesite:http://code.google.com/p/hudson-eclipse/
    重新打開eclipse在windows->preferences下將出現(xiàn)hudson選項,設置默認的hudson url保存.
    然后選擇windows->open view打開hudson view
    如果你己經(jīng)配置hudson項目將列出hudson的項目名稱,右鍵菜單可以看到所有的執(zhí)行菜單,使用還是很方便的,希望大家來完善這篇文章.

    posted on 2008-07-08 13:08 小程人生 閱讀(23754) 評論(4)  編輯  收藏

    評論

    # re: 持續(xù)集成工具hudson[未登錄] 2008-07-08 20:08 javaread.com

    hudson算很不錯的CI工具了,發(fā)展很快。  回復  更多評論   

    # re: 持續(xù)集成工具hudson[未登錄] 2008-07-10 14:45 alfred

    你的那篇hibernate繼承實現(xiàn)的文章哪去了  回復  更多評論   

    # re: 持續(xù)集成工具hudson[未登錄] 2008-07-10 17:02 小程人生

    @alfred
    我過幾天補上,被我不小心刪掉了  回復  更多評論   

    # re: 持續(xù)集成工具hudson 2008-07-11 09:58 小程人生

    @alfred
    補上了,對不起呀  回復  更多評論   


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚洲成年轻人电影网站www| 成人性生交大片免费看无遮挡 | 暖暖免费高清日本中文| 久久久久国产精品免费免费搜索 | 久久午夜夜伦鲁鲁片无码免费| 亚洲无线一二三四区手机| 图图资源网亚洲综合网站| 中国国语毛片免费观看视频| 精品成在人线AV无码免费看 | 亚洲一区二区三区电影| 亚洲成人免费在线| 亚洲码在线中文在线观看| 亚洲a无码综合a国产av中文| 国产福利免费观看| 日韩大片免费观看视频播放| 亚洲人成色77777| 久久久久成人片免费观看蜜芽| 亚洲小说图片视频| 两个人看的www免费高清| 亚洲国产精品无码AAA片| 无码亚洲成a人在线观看| 可以免费观看一级毛片黄a| 免费毛片毛片网址| 久久久久亚洲AV成人无码网站| 最近最新高清免费中文字幕 | 99久久婷婷免费国产综合精品| 亚洲国产精品无码AAA片| 免费国产成人高清在线观看网站| 亚洲色偷精品一区二区三区| 亚洲精品偷拍视频免费观看| 亚洲综合激情五月丁香六月| 免费日韩在线视频| 亚洲videos| 免费一级毛片在线播放| 无码中文字幕av免费放dvd| 精品亚洲AV无码一区二区| 亚洲精品国产自在久久| 91成人在线免费视频| 国产精品亚洲va在线观看| 久久精品国产亚洲AV果冻传媒| 最近的中文字幕大全免费版|