Hudson:持续集成工具的安装、使用
Hudson簡(jiǎn)介?
http://hudson-ci.org?
??? 以其強(qiáng)大的功能和易用的界面征服了大量的用戶,它與主流的構(gòu)建工具、版本控制系統(tǒng)以及自動(dòng)化測(cè)試框架都能進(jìn)行很好的集成。?
??? 很多組織和公司選擇它作為自己的持續(xù)集成工具,如?
http://hudson.jboss.org/hudson?
https://grid.sonatype.org/ci/
??? Hudson還有一個(gè)優(yōu)秀之處就是它提供了靈活的插件擴(kuò)展框架,大量開(kāi)發(fā)者基于這種機(jī)制對(duì)Hudson進(jìn)行了擴(kuò)展。
安裝Hudson?
??? 注意:Hudson必須運(yùn)行在JRE1.6或更高的版本上,安裝時(shí)需要聯(lián)網(wǎng)?
??? Hudson only needs a Java 6 or newer runtime. An internet connection will be required if you want to be able to install and auto-update plug-ins?
http://hudson-ci.org/
??? 安裝Hudson有兩種方式:?
??? 方式一:直接運(yùn)行war(This is mostly useful for testing purposes)?
??????? 1:下載hudson-3.0.0.war?
??????? 2:啟動(dòng)Hudson的方式是在命令行直接運(yùn)行hudson.war?
??????????? $cd /opt/maven?
??????????? $java -jar hudson-3.0.0.war?
??????????? $java -jar hudson-3.0.0.war --httpPort=8082?
??????? 3:啟動(dòng)完成之后,在瀏覽器地址欄輸入:http://localhost:8082/訪問(wèn)Hudson界面?
??? 方式二:安裝rpm(For production we recommend using native packages for simplified install )?
??????? 1:下載hudson-3.0.0-1.1.noarch.rpm?
??????? 2:安裝rpm?
??????? 3:執(zhí)行如下命令(需要root用戶操作)?
??????????? cd /opt/maven?
??????????? rpm -ivh hudson-3.0.0-1.1.noarch.rpm?
??????????? /etc/init.d/hudson start
??????????? nohup /etc/init.d/hudson start > /opt/maven/hudson_start.log 2>&1 &
??????????? 查看hudson進(jìn)程?
??????????? ps -ef|grep hudson.war?
??????? 4:啟動(dòng)完成之后,在瀏覽器地址欄輸入:http://localhost:8080/訪問(wèn)Hudson界面?
??????? 此rpm包做了如下工作:?
??????????? Hudson will be launched as a daemon up on start. See /etc/init.d/hudson for more details.?
??????????? The hudson user is created to run this service.?
??????????? Log file will be placed in /var/log/hudson/hudson.log. Check this file if you are troubleshooting Hudson.
??? 因?yàn)镠udson was written to work on unix-like platforms,所以不建議在windows上面安裝,如果安裝,則需要先UnxUtils?
??? 具體參見(jiàn):http://wiki.eclipse.org/Hudson-ci/Installing_Hudson
??? 打開(kāi)http://172.168.27.70:8080/頁(yè)面后,根據(jù)需要安裝插件,如果選擇的很多,將需要很久的時(shí)間?
??? 如果全部安裝后,點(diǎn)擊finished
??? hudson系統(tǒng)配置?
??? 進(jìn)行系統(tǒng)管理--系統(tǒng)配置,配置JDK?
??? JDK安裝:?
??? JDK-1.6? /usr/java/jdk1.6.0_33
??? 全局MAVEN_OPTS?
??? -Xms128M?
??? -Xmx512M
??? 如果打開(kāi)系統(tǒng)配置報(bào):?
??? Problem accessing /checkURIEncoding. Reason:? Tried to read incomplete UTF8 decoded String
??? 此問(wèn)題在IE下存在,而在firefox下面不存在,請(qǐng)使用firefox瀏覽器
?
創(chuàng)建Hudson任務(wù)?
??? 任務(wù)類型選擇:構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目(Build a free-style software project)?
??????? 不僅支持Maven項(xiàng)目,還支持其他類型的構(gòu)建工具,如Ant、Shell?
??????? 而對(duì)于Maven用戶來(lái)說(shuō),兩者最大的不同在于前者需要用戶進(jìn)行多一點(diǎn)配置,而后者會(huì)使用Hudson自帶的Maven,且從項(xiàng)目的POM中獲取足夠的信息以免?
??????? 去一些配置。?
??????? 推薦使用free-style類型,這種方式更可控制,當(dāng)任務(wù)出現(xiàn)問(wèn)題的時(shí)候也更容易檢查。?
??????? 1:首先是項(xiàng)目的名稱和描述?
??????? 2:Discard Old Builds.該選項(xiàng)配置如何拋棄舊的構(gòu)建。因?yàn)镠udson每執(zhí)行一次構(gòu)建任務(wù),就可以保存相應(yīng)的源代碼、構(gòu)建輸出、構(gòu)建報(bào)告等文件。?
??????????? Days to keep builds?
??????????? Max # of builds to keep?
??????? 3:項(xiàng)目使用的JDK配置,這里可以選擇的JDK就是用戶在系統(tǒng)設(shè)置中預(yù)定義好的JDK(當(dāng)前僅僅配置了一個(gè),不用配置)?
??????? 以上三項(xiàng)為基本配置
??????? Hudson任務(wù)的源碼倉(cāng)庫(kù)配置?
??????? 4:Source Code Management?
??????????? 選擇Subversion?
??????????? svn://172.168.9.101/account/trunk
??????????? 一般來(lái)說(shuō),該部分的其他選項(xiàng)保留默認(rèn)值即可。?
??????? Hudson任務(wù)的構(gòu)建觸發(fā)配置?
??????? 5:Build Triggers?
??????????? 選擇poll SCM??? 周期性地輪詢?cè)创a倉(cāng)庫(kù),發(fā)現(xiàn)有更新的時(shí)候構(gòu)建本項(xiàng)目,是最常用的構(gòu)建觸發(fā)方式?
??????????? 使用了Cron任務(wù)調(diào)度工具進(jìn)行配置,如10分鐘輪詢一次?
??????????? */10 * * * *
??????? 6:Hudson任務(wù)的構(gòu)建配置 Build?
??????????? 告訴Hudson使用運(yùn)行Maven命令構(gòu)建項(xiàng)目。從Add build step選擇Maven3?
??????????? 選擇Maven Version(選擇bundle) 和 Goals如clean install
??????????? clean install -Dmaven.test.failure.ignore?
??????????? 此參數(shù)配置構(gòu)建命令忽略測(cè)試。這樣失敗的測(cè)試就不會(huì)導(dǎo)致構(gòu)建失敗。即不穩(wěn)定的構(gòu)建,任務(wù)狀態(tài)為黃色。
??????? 針對(duì)account項(xiàng)目,需要停斷郵件服務(wù)(占用了25端口,而greenmail測(cè)試郵件綁定此端口)?
??????? ervice sendmail stop?
??????? chkconfig sendmail off
??????? 任務(wù)執(zhí)行時(shí)?
??????? hudson在?
??????? /var/lib/hudson/jobs/?
??????? 根據(jù)任務(wù)的名稱構(gòu)建項(xiàng)目?
??????? hudson綁定的Maven倉(cāng)庫(kù)地址是:?
??????? /var/lib/hudson/.m2/repository
??????? 使用的用戶是hudson:hudson
??????? 配置Maven項(xiàng)目測(cè)試報(bào)告:?
??????? Post-build Actions?
??????? 選擇Publish JUnit test result report?
??????? Test report XMLs中輸入:**/target/surefire-reports/TEST-*.xml
總結(jié)
以上是生活随笔為你收集整理的Hudson:持续集成工具的安装、使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 关于JAVA中子类和父类的构造方法
- 下一篇: ActiveMQ(一)简介与架构