下面先看看一張簡易關(guān)系圖(Hudson+Maven+SVN)
hudson
| \
| \
| \
|———> \
maven SVN
在上面的圖中可以看見得出幾條路徑
1. Maven ————> Hudson
2. SVN ————> Hudson
3. Maven ————> SVN
先從Maven到Hudson: Maven與Hudson的關(guān)系相當(dāng)于顯示層和控制層的關(guān)系。為什么怎么說呢!因?yàn)镠udson本質(zhì)不對源碼進(jìn)行編譯,測試打包等底層操作。這些底層的操作都是交給Maven去操作。Maven類似于Javac一樣。在Dos界面對Java源碼的編譯。因此我通常將Hudson看做是類似界面顯示(但是如果說Hudson是絕對的界面顯示有點(diǎn)不妥,是因?yàn)镠udson也是有些插件可以進(jìn)行一些操作的)。
在從SVN到Hudson:其實(shí)關(guān)系類SVN將它的源碼路徑和用戶名注冊到給Hudson。那么Hudson可以通過注冊進(jìn)行訪問SVN,從SVN中取出源碼。這里源碼可以是任何的計算機(jī)語言。
在Maven 到SVN:其實(shí)關(guān)系就相當(dāng)于直接用Maven的scm連接SVN然后進(jìn)行源碼的操作。不過這樣學(xué)習(xí)成本將不小,界面也不是很友好。因此才會引入Hudson通過界面配置進(jìn)行集成。如果不用Hudson其實(shí)也是可以通過Maven和SVN進(jìn)行集成。
總結(jié):
因此將Maven+SVN+Hudson進(jìn)行集成是一個學(xué)習(xí)和操作方便的組合。同時如果明白這些工具的主要作用。其實(shí)Maven也可以用ant替換,SVN也可以用CVS替換。至于怎么使用Hudson怎么使用Maven,怎么使用SVN等,我將根據(jù)留言看是否有必要寫貼。
_________________________________________
極限編程中一項(xiàng)建議實(shí)踐便是持續(xù)集成,持續(xù)集成是指在開發(fā)階段,對項(xiàng)目進(jìn)行持續(xù)性自動化編譯、測試,以達(dá)到控制代碼質(zhì)量的手段。
持續(xù)集成提供了及時發(fā)現(xiàn)問題、追蹤問題、修復(fù)問題的機(jī)制,他替代了傳統(tǒng)的在所有代碼編寫完畢后才提交QA部門進(jìn)行測試的方法。
持續(xù)集成對單元測試較為依賴,測試覆蓋率越高,單元測試越準(zhǔn)確,越能體現(xiàn)持續(xù)集成的效果。持續(xù)集成主要在以下方面提供好處;
1、持續(xù)自動化測試(持續(xù)集成可通過時間間隔觸發(fā),或其他方式觸發(fā))
2、跟蹤工程健康狀況
3、強(qiáng)制性單元測試用例,驗(yàn)收測試用例等
4、靜態(tài)代碼檢測,生成測試報告
Hudson是一款輕量級、易擴(kuò)展、易配置的持續(xù)集成平臺,該集成平臺maven2有良好的支持,并且擴(kuò)展插件豐富,包括findbug,PMD靜態(tài)分析插件、emma單元測試覆蓋率插件、junit測試報告插件等等。
下面我們以Hudson持續(xù)集成平臺為例,主要講解怎么安裝hudson和hudson擴(kuò)展插件的使用,并以maven2工程為例,建立新作業(yè)。
下載Hudson的war包,http://hudson-ci.org/ 在tomcat環(huán)境里,在conf\Catalina\localhost 中新建配置文件hudson.xml,配置如下
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="yourPath/hudson.war" path="hudson" reloadable="false">
</Context>
yourPath為hudson.war的目錄路徑。
啟動tomcat,訪問http://localhost:8080/hudson便能訪問我們的持續(xù)集成應(yīng)用了。Jboss環(huán)境中,復(fù)制war包到default目錄下即可。如下為安裝好以后的hudson訪問界面。
對上面的各圖的解釋:
Project name: 工程名稱
Description: 描述信息
Discard build: 如果選擇此項(xiàng)可以設(shè)置 build 記錄保存的天數(shù) , 或者 build 記錄保存的數(shù)理 , 或者只保存最新的 build 記錄 , 一般不需填寫
Advance project options: 可以設(shè)置 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 指定標(biāo)記名稱
選擇subversion 可以進(jìn)行相應(yīng)的subversion 設(shè)置
Build trigger 可以設(shè)置hudson 自動執(zhí)行的一些動作,build after others projects are built 指定hudson 構(gòu)建完成后需要繼續(xù)構(gòu)建的工程名
Build periodically 根據(jù)hudson 定義的語法規(guī)則來設(shè)定自動構(gòu)建工程的時間間隔
設(shè)置一些構(gòu)建完成后的動作, 如放郵件, 打包, 產(chǎn)生測試報告, 產(chǎn)生java doc 等.
點(diǎn)擊ok 保存設(shè)置
一個集成任務(wù)就這樣簡單的配置好了,目前能持續(xù)的編譯和測試,在發(fā)現(xiàn)測試不通過或者編譯不通過的時候,由郵件發(fā)送給相關(guān)開發(fā)者(需自行配置)。
使用hudson
進(jìn)入剛配置的項(xiàng)目, 可以在左側(cè)build history 看到歷史的build 記錄, 點(diǎn)擊build now 可以手動執(zhí)行構(gòu)建動作, 完成后可以通過記錄標(biāo)記的顏色來看是否出錯, 紅色有錯, 藍(lán)色成功. 點(diǎn)擊記錄查看詳細(xì)信息, 如果有變化hudson 將列出類信息
三、添加插件和運(yùn)用插件
配置一個任務(wù)后,我們希望hudson不僅可以通過集成發(fā)送測試報告、編譯問題,還需要掌握靜態(tài)代碼的分析結(jié)果,比如findbus或pmd的分析結(jié)果,再或則是單元測試覆蓋率的相應(yīng)報告。接下來,我們安裝findbus插件。
進(jìn)入“系統(tǒng)管理”》“管理插件”,如下
elipse插件應(yīng)用
eclipse updatesite:http://code.google.com/p/hudson-eclipse/
重新打開eclipse在windows->preferences下將出現(xiàn)hudson選項(xiàng),設(shè)置默認(rèn)的hudson url保存.
然后選擇windows->open view打開hudson view
如果你己經(jīng)配置hudson項(xiàng)目將列出hudson的項(xiàng)目名稱,右鍵菜單可以看到所有的執(zhí)行菜單,使用還是很方便的,希望大家來完善這篇文章.
參考文獻(xiàn):
1、持續(xù)集成工具h(yuǎn)udson http://www.uml.org.cn/jchgj/200904231.asp
2、HUDSON 持續(xù)集成MAVEN 項(xiàng)目http://yanguoyu.iteye.com/blog/540786
3、Hudson+Maven+SVN 快速搭建持續(xù)集成環(huán)境 http://www.blogjava.net/BearRui/archive/2009/10/22/hudson-maven-svn.html
聯(lián)系客服