一、配置背景:
要想介紹Hudson,就要從持續集成開始介紹。持續集成,最開始知道有這個概念的時候是從一本叫做《.NET中的持續集成》,但是本人熟悉的是Java,而不是.Net平台,所以這本書就放下了,沒有仔細的看。如今,我們需要用SSH架構開發一個知識管理平台,項目組長給我的任務恰好就是配置持續集成的開發環境。
說了這麼半天看來是有點跑題了,還是沒有說持續集成是個什麼概念。所謂持續集成(Continuous integration)就是:持續集成是一種軟件開發實踐,即團隊開發成員經常集成它們的工作,通常每個成員每天至少集成一次,也就意味著每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動化測試)來驗證,從而盡快地發現集成錯誤。許多團隊發現這個過程可以大大減少集成的問題,讓團隊能夠更快的開發內聚的軟件。
上述定義是來源於軟件大師:馬丁福勒(Martin Fowler),大師就是大師,反正我沒看懂。我來說說我的理解,在這裡,我用舉一個例子來說吧……
現在我們已經進行完了前期的工作(包括:需求的確定,原型的設計等等),到了開始編程的階段了,我們現在很少有孤軍奮戰的了吧?大多是小組內各個成員進行配合,編寫系統,這樣就有個問題,大家的編程環境可能出現差距,大家的代碼集中後進行編譯運行可能會遇到因為所用類庫版本不同或大家提交代碼時間不同而導致前面提交的人員要等著別的同志完成代碼的編寫後才能一起集成編譯測試,如果能夠計算機能夠自動的持續循環如果有新的代碼庫的更新,就自動進行集成,然後測試,這樣將為我們省下大把的時間。持續集成在我的眼中就是這麼一回事。不知道講明白沒有?!
二、配置工具:
俗話說得好,要想善其事,先要利其器。我們先來看看我們所要用到的工具:
Hudson: Hudson.war
Java: jdk1.6.0_07
Ant : apache-ant-1.8.1
Tomcat: apache-tomcat-6.0.29.txt.exe
SVN: VisualSVN-Server-2.1.5(SVN服務器).msi
TortoiseSVN-1.6.10.19898-win32-svn-1.6.12.msi (SVN 客戶端)
首先是持續集成工具,現在比較常用的持續集成工具:
Cruise Control:開源、圍繞 Ant 構建。常用,但用戶常反映其難以配置、需要編寫配置文件。Cruise Control 又稱為用於 Java 的“原始”CI 工具。
apache Continuum:開源、用於構建 Java 項目。由於它是 Maven 的官方構建工具,往往對基於 Maven 的項目提供最好的支持和體驗。其管理和配置通過一個基於 Web 的界面進行。
JetBrains Team City — 一種常用的商業 CI 服務器。Team City 的一個獨有的特性是,它具有針對幾種 IDE 的相應插件,這些插件使開發人員可以在將其更改提交版本控制系統時進行“預測試”提交 — 使用此功能意味著開發人員不可能“中斷程序的構建”。其管理和配置通過一個基於 Web 的界面進行。
這裡就用我折騰了兩天的Hudson作為例子,當然如果使用別的持續集成工具也可以。配置使用過程不在本文討論范圍之內。
Java 的jdk不多說了。
Ant大名鼎鼎的Java構建工具。
Tomcat為apache旗下使用最多的服務器。
SVN取代CVS作為現在比較流行的版本控制工具。
由於在本機上進行測試需要使用svn服務器,這裡選用VisualSVN作為SVN的服務器端,也可以采用SVN 1.4.5作為服務器,不過需要在控制台中利用命令行進行控制,TortoiseSVN作為SVN客戶端工具,小烏龜的圖像已經深入人心。
到上面,我們的工具已經備齊,開始配置。
三、配置步驟:
首先是Java的jdk安裝,如果我沒記錯的話,Java的jdk安裝後環境變量就應該已經配置好了。
Ant的配置:
ant下載後應該是一個壓縮包,解壓後,解壓後所在路徑這裡用 ${ant_path} 代替。打開系統環境變量,新建ANT_HOME變量,值為 ${ant_path} 。然後再在系統變量path中加入如下內容:
;%ANT_HOME%\bin;%ANT_HOME%\lib;
至此,Ant配置完畢。
安裝Tomcat,如果你的tomcat是exe文件,就直接安裝,否則,將壓縮包解壓到一個路徑,我這裡用 ${tomcat_path} 代替。同上打開系統環境變量,新建CATALINA_HOME變量,值為${tomcat_path}。
path變量中加入如下代碼:
;% CATALINA_HOME%\bin;
classpath變量中加入如下代碼:
; % CATALINA_HOME%\lib;
然後,轉到${tomcat_path}下的bin文件夾下,有個startup.bat(for Windows系列系統)或startup.sh(for unix系列系統)。如果是利用exe安裝的啟動tomcat服務器是在系統的管理下的服務中進行啟動。至此,tomcat已配置完成並已經啟動。
我們使用的Hudson.war,原來做過Java web開發的一眼就能夠看出來,這玩意扔到tomcat的webaPPS下就能夠運行了,我們就這麼干。
打開浏覽器,輸入如下地址:
http://localhost:8080/
這就是傳說中那只小貓,看到它說明我們的tomcat已經安裝成功,並且已經啟動。現在我們將Hudson.war復制到${tomcat_path}/webaPPS文件夾下。在浏覽器中輸入如下地址:
http://localhost:8080/hudson
如果成功得到如下頁面:
其中可以看到我部署了兩個項目。
配置Hudson的第一步:
選擇系統設置。
出現如下頁面:
選擇系統設置。出現如下頁面:
圖中路徑描述了Hudson生成項目輸出的目錄,這個可以改到一個我們自己熟悉的目錄,這裡我就不改了。
下面是jdk配置:
因為hudson中可以配置多個jdk,這裡要先給這個jdk起一個別名以識別不同的jdk,我選擇使用java_jdk。在下面的JAVA_HOME中輸入環境變量中的Java_HOME變量的值就可以了。我們可以通過點擊新增jdk按鈕增加不同的jdk。
下面是Ant的配置:
與jdk配置過程差不多,給出ant的路徑,為ant起別名。
下面是maven的配置:
因為本文沒有涉及maven配置的過程。