前言:最近几天在学习持续集成工具——Hudson的使用,但由于我原来对“持续集成”其实也并不十分理解,所以还走了些弯路,于是决定整理一个最基本的持续构建与Hudson的入门介绍。
一、基础概念介绍
本小节主要是介绍一些基本概念,如果已经了解的就可以忽略本节。
1、什么是持续集成(Continuous Integration)
(以下转自:http://dev.firnow.com/course/3_program/gcs/20071120/87085.html)
2、什么是Hudson
Hudson 是近年来应用得比较广泛的一个持续集成工具。与另一个也是使用非常广泛的工具CruiseControl比起来,Hudson显得更轻量、简单易用。
(以下转自:http://www.oschina.net/p/hudson)
hudson项目主页(日本人做的……):http://hudson-ci.org/
3、什么是Ant
(以下资料转自网上,但哪里是原出处已不可考)
我个人觉得,通俗点说就是,ant相当于可以跨平台的批处理工具,而且能干的事情也比window的bat要多
Ant不是构建工具的唯一选择,Apache下还有另外一个构建工具,叫做Maven,也可以跟Hudson进行集成,不过Maven我还不会用,所以这里就只讲Ant了……
Ant项目主页:http://ant.apache.org
二、用Hudson和Ant进行持续集成
1、Hudson工作原理
Hudson的工作原理其实就是持续集成的工作原理。如下图所示:
具体描述如下:
[1] 程序员通过SVN客户端提交代码。
[2] Hudson用svnupdate命令从svn中更新代码到本地。
[3] Hudson调用项目里的Ant或者Maven脚本进行构建。
[4] 构建结束,生成报告并记录日志,发送结果。
[5] 用户可随时通过浏览器在Hudson上浏览构建结果。
由此可以看出,在这个持续集成里头,Ant才是构建工作的核心,而Hudson则相当于一个调度者、管理者。
2、Meet Hudson Step by Step(一个简单例子)
我们现在来对Hudson进行一个初步的使用,本例子里面只涉及到必要的、最简单的配置。
首先是必要条件:①jdk要装好,tomcat装好(虽然hudson不用tomcat也可以自己启动,不过我想大家一般都会有tomcat的,所以这里就用tomcat来运行hudson)。②至少有一种配置管理工具,我这里用的是SVN。Hudson默认支持SVN和CVS,如果是其他的话需要另外安装Hudson插件。③ant的build.xml要先写好,因为具体的构建工作都需要通过它来执行。附件build.rar里提供了一个比较简单的build.xml供参考。
操作步骤如下:
[1] 在两个项目的主页里下载好Hudson.war和ant压缩包,把ant的压缩包解压到某个目录下 。
[2] 最好先在环境变量设置里JAVA_HOME设好,把ant的bin目录添加到path中(因为我以前就是配好了的,虽然似乎不加也可以,不过最好还是加上吧)
[3] 把hudson.war部署到tomcat。【注:我把hudson.war包直接放到webapps目录下,然后启动tomcat,不成功,tomcat提示无法解压zip文件的异常,但通过tomcat管理界面来部署war包却可以,原因暂时不明。】
[4] 部署成功后,访问http://localhost:8080/hudson,打开hudson管理界面
[5] 选择“系统管理”-->“系统设置”,配置好“JDK”和“Ant”两项。
[6] 回到hudson首页,选择“新建任务”,输入任务名称,并选择“Build a free-style software project”(如果用Maven构建的话就选第二个)
[7] 进入下一页,在“Source Code Management”中,选择Subversion,填写svn url
【注:ant的build.xml放在这个路径的根目录下】
[8] 在“Build”里,选择Invoke Ant,选择前面配置的那个ant
target里面填写需要运行的build.xml的target,如不填即执行build.xml里指定的default target。
[9] 其他配置暂时可以不管,Save之后点击左边的“立即生成”看看,如无意外,应该能看到构建成功了。
3、下一步
到此,你已经对Hudson有了一个基本的了解。接着就可以继续更改hudson的Job配置,可以设置构建的触发方式、构建的周期、邮件服务器配置(用来发送构建结果的)等等,这些功能大家要用的时候就自己摸索啦~~