Hudson+Maven+SVN搭建持續繼承環境(CI)

一、所用開發工具

1.    Hudson: Hudson 是一種革命性的開放源碼 CI 服務器,它從以前的 CI服務器吸取了許多經驗 教訓。Hudson 最吸引人的特性之一是它很容易配置:很難找到更容易設置的 CI 服務器,也很難找到開箱即用特性如此豐富的CI 服務器。Hudson 容易使用的第二個原因是它具有強大的插件框架 ,所以很容易添加特性,例如添加tomcat插件後,可以方將build好的war包方便的部署到Tomcat裏。下載地址:http://hudson-ci.org/

2.    Maven2:Maven 是一個頂級的 Apache Software Foundation 開源項目,創建它最初是爲了管理 Jakarta Turbine 項目複雜的構建過程。從那以後,不論是開源開發項目還是私有開發項目都選擇 Maven 作爲項目構建系統。下載地址:http://maven.apache.org/download.html

PS: 本文中由於使用Maven的過程中遇到些問題,所以最終採用了SHELL腳本,簡單方便,實用就行。


3.    Subversionsvn):版本控制軟件,和它功能相似的工具有cvs,perforce等。下載地址:http://www.subversion.org.cn/

4.    Hudson的自動部署插件,下載地址::https://hudson.dev.java.net/files/documents/2402/106347/deploy.hpi

二、工具的安裝及設置

1.     Maven2的安裝:把maven-2.0.4-bin.zip解壓到D:/maven-2.0.4(或者你自己想解壓的位置,我是如此配置的)下面就是配置環境變量了,這和1.0的版本是一樣的。(1)MAVEN_HOME:D:/maven-2.0.4 (2)在Path 中加入%MAVEN_HOME%/bin

這樣配置就OK了。測試是否安裝成功,可以在命令行下輸入mvn  -v,出現如下界面,說明安裝成功


 

 

 

2.    Hudson的安裝:Hudson的安裝有兩種方式(1)可以將Hudson部署到Tomcat下面運行,將下載的hudson.war直接放到Tomcat的webapp下,啓動tomcat就ok了

(2)可以使用命令啓動hudson。步驟:首先下載hudson.war,然後可以在一個盤符下建立一個文件夾,如D:/hudson(自己可以隨意建立),然後將這個路徑設置環境變量(別說你不會設置環境變量哦),Hudson_Home=D:/hudson,最後使用命令java -jar hudson.war啓動hudson

3.    Svn的安裝:svn的安裝比較簡單,下載好安裝文件後,一路next即可。

三、Maven2+Hudson+Svn的集成

    這裏比較重要了,這三樣的結合主要就是在這裏來進行配置的,而Maven2和Svn的配置都是依賴於Hudson的,所以重點講講Hudson的配置

1.       Hudson的配置

用上述的Hudson的安裝方法安裝好Hudson後,就可以通過瀏覽器http://localhost:8080/hudson (切記如果有小版本號,一定要帶上,比如 http://localhost:8080/hudson-2.2.1/ )來打開Hudson的頁面了,如下(如果你已經build過工程的話,會在這裏顯示出來哪些成功了,哪些失敗了)

 


2.       Hudson的全局配置

接下來要對Hudson進行全局設置了,點擊左邊列表菜單Manage Hudson,然後點擊Configure System。可以對hudson進行系統配置,包括全局路徑和變量設置等。如下圖

 

 

(1):System Message 當然了這是表面的東西啦,你可以寫點隨意的東西,比如HelloHudson啊,然後弄個Logo圖片什麼的,它也支持HTML語言,可以把這個歡迎界面弄的相當漂亮,不詳述。

(2):Quiet period 這個值是表示你可以讓你的構建有等待時間,以防止在提交代碼的過程中去開始構建。這裏是全局的變量,我習慣在每個項目裏面去設定,因爲我使用hudson搭建的項目有SVN的還有VSS的,這個等待時間的值肯定會不一樣。(如果你想在這裏設置可以查看右邊的“幫助”)

(3):Enable security 這裏是hudson權限的相應設置,選擇該項後,如下圖:


 

這裏可以保留默認設置,如果你想對每個用戶進行相應的權限操作,選擇Authorization項下的Project-based Matrix Authorization Strategy這個選項就可以進行相應的設置了,如下圖所示:


這裏可以保留默認設置,如果你想對每個用戶進行相應的權限操作,選擇Authorization項下的Project-based Matrix Authorization Strategy這個選項就可以進行相應的設置了,如下圖所示:

 

 

 

(4)Global properties這塊設置默認即可

(5)Maven這裏的設置,就是取個名字,然後路徑中指定maven2的解壓路徑。如下圖所示 (如果需要用到 就按如下設置)



在這裏設置時,我一般去掉Install automatically,而是直接指定MAVEN_HOME,我的maven是裝在C:/Program Files/apache-maven-2.2.1-bin/apache-maven-2.2.1(依個人設置)這裏的,直接填入即可。

(6)JDK設置

              Jdk的設置是必須的,如果你在這裏沒有設置jdk的路徑的話,在build工程的時候有可能會報這個錯誤,如下圖所示,

 

所以正確的設置也是去掉Install automatically選項,直接填寫名稱和   JAVA_HOME

我的JAVA_HOME是安裝在C:/Java/jdk1.6.0_02這裏的,所以直接填入即可。填寫好的JDK設置如下圖:


(7)shell,Ant,Maven,CVS等等,如果想了解的更深,右邊的“help”(右邊的藍色小問號)會有很大的幫助。


Shell :


add build step -> choose "execute shell", 如下圖所示



在Command處 填寫 如下 shell 腳本: 


#!/bin/bash

#sudo su -

cd /Users/liangc/.hudson/jobs/HelloKitty_Test/workspace

xcodebuild clean -sdk iphonesimulator5.0 -configuration Debug

xcodebuild -sdk iphonesimulator5.0 -configuration Debug


PS: 這裏使用xcodebuild的命令 編譯


(8):E-mail Notification 這個主要是郵件提醒,可以不用設置,要感興趣的話,可以這樣設置,具體參考右邊的藍色小問號。

SMTP server-->mail服務器地址(127.0.0.1)

Default user e-mail suffix-->郵件的後綴名(@123.com)

System Admin E-mail Address-->管理員用戶的郵件帳號[email protected]

Hudson URL-->訪問hudson的URL(http://127.0.0.1:8080

至此,Hudson的全局配置就差不多了…...

3.       開始創建job

點擊左側列表菜單的New Job,出現如下界面

 

填寫Job name,然後選中Build a maven2 project,依個人項目設定,這裏講Maven2的工程,點擊OK按鈕。進入job的設置頁面(這裏是重點,在這裏我們可以看到Hudson的偉大,如何將Maven2的工程以及Svn集成起來)如下圖所示


 

(1): Project Name 在你建立項目的時候已經取過名字了,TestJob.如果你哪天想改名字,就在這裏改就可以了.

(2): Description 這裏主要是寫對TestJob這個項目的描述,可以寫項目的參與者,項目起止日期等等,可以說這個地方是美化界面+項目描述+提示信息等等,我對於界面美化沒有太多的要求,這個就留給大家去研究啦.

(3): Discard Old Builds 建議開啓這個選項(hudson有一個選項,可以從SVN上check out項目,但這個項目的位置好像只能是%hudson_home%/jobs/projectname/workspace下面,本人認爲這是一個不合理的方式,因爲很正常的大家都會在自己的目錄下建立項目後,然後再用hudson去構建環境。

 

Advanced Project Options: 這裏是表示你可以對你的項目構建進行一定的設置,它下面包括兩個小的選項,

(1).Quiet period: 時間可以根據項目的需要來設定。哦,差點忘了,這裏的這個時間是說明從構建開始到項目真正開始構建之間的時間差,比如,我將此時間設爲300S,說明TestJob在要開始構建之前會有5分鐘的時間緩衝,這個是非常人性化的,因爲如果有大量的代碼需要提交,會需要很長時間,如果沒有等待時間的話很容易出現少代碼的情況導致整個構建過程的失敗。

(2).Use custom workspace:這個地方你可以將可以對外公佈的東西放在一個特定的目錄下,然後把這裏的值設成該目錄,如:D:/hudson/jobs/TestJob/builds這樣的話,這個目錄下的東西是就公共的了。

 

Source Code Management:呵呵,這裏就是要結合版本控制工具的地方了,這裏就看你選用的是那種工具了,我用的是svn,所以設置如下

在Repository URL裏填入你的倉庫地址,svn有兩種地址,一種是http://.....這樣的,一種是svn://......的,我這裏是用的第二種方式,所以填入svn://192.168.0.245:56581/mydemo

(注意,這裏是工程的根目錄,也就是pom.xml所在的目錄,你可不要填寫成svn://192.168.0.245:56581/demo/src等的目錄了。要注意哦!!!)

Use update: 這裏選項勾上後,每次檢測到庫上有更新,就會使用svn update命令;如果沒有勾上的話,那每次使用的是svn checkout命令,理由是update要比checkout命令省相當多的時間。

 

Build Triggers:可以理解爲你想以什麼樣的方式去觸發你的構建,以其它構建成功後爲基礎,還是週期性的構建,還是根據poll SCM(變更觸發)來觸發構建。

我習慣選擇 Build periodically,並在Schedule中輸入 0 12,20 * * *。

注: Schedule的配置規則是有5個空格隔開的字符組成,從左到右分別代表:分 時 天 月 年。*代表所有,具體參考右面的藍色小問號

0 12,20 * * * 表示在任何年任何月的任何天的12和20點的0分 進行構建

 

 

Build和Build Settings沒有什麼特殊的設置,可以不用設置

Post-build Actions:這裏也可以說是做一些發佈啊,善後啊之類的,可以看到有mail, artifacts, publish之類的。

 

☆Hudson的自動部署:

一般我們build成功一個項目後,Hudson會在%Hudson_home%/jobs/projecct_name/ workspace/ projecct_name/ target下發佈一個項目的war包。(註釋:project_name是你的項目名稱,Hudson_home一般在C:/Documents and Settings/username/.hudson下。其中username是你當前的系統用戶,有來賓賬戶或者administrator等。呵呵,註釋是不是很無聊啊,爲普及用,見諒。)但是我們想build成功後,就要看到我們項目進展的怎麼樣了,就想通過Tomcat來加載這個war包直接看效果,這時,我們不得不手動的把這個war包拷貝到Tomcat的webapp下,然後啓動Tomcat。很麻煩吧,這裏介紹的就是這種簡單的自動部署方法,可以通過Hudson的一個插件,呵呵,現在前面提到的那個插件就起大作用了。點擊左側列表菜單Manage Hudson,然後選擇第三項Manage Plugins,這個選項的功能是管理Hudson插件的,(或者直接輸入:http://localhost:8080/hudson/pluginManager/)在這裏說明了Hudson的擴展性有多麼的強大,在插件管理中心點擊Advanced,upload plugin 中上傳剛纔下載的插件,上傳完畢後需要重啓hudson才能完成安裝(即重啓tomcat),重啓後點擊New Job後,然後建立一個新的Job時(已有的項目,直接點擊進入項目,然後點左側的功能菜單configure),在配置頁面的Post-build Actions項下面會多出一項功能:Deploy war/ear to a container,在這裏WAR/EAR file:就是填寫hudson所打好的war包路徑,之前說過,hudson打好的war包是放在這裏的,所以這裏就寫%Hudson_home%/jobs/projecct_name/ workspace/ projecct_name/ target/你的war文件的名稱.war。Container選擇你的Tomcat的版本。Manager user name:填寫Tomcat的用戶名,默認是admin, Manager password:填寫Tomcat的密碼,默認是空。Tomcat URL:填寫http://localhost:8080/就ok了,至此保存就可以了,這樣,當你再build此工程的時候,war文件會自動部署到你的tomcat的webapp目錄下。設置如下圖所示


 

 

以上部分 是轉載的, 最後附上結果 , 成功失敗,一目瞭然!







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章