你的位置:首页 > ASP.net教程

[ASP.net教程]使用Hudson进行持续集成


小Alan最近接了一个任务,就是使用Hudson进行持续集成,持续集成是怎么个概念,3言2语也说不清,有兴趣的童鞋去找我二奶度娘问问就知道了,说到Hudson就不得不提一下jenkins,目前来说用jenkins的应该要比Hudson多吧,毕竟jenkins的更新频率还是要比Hudson快,两者其实是五十步笑百步,会玩Hudson,jenkins也难不到哪去,所以jenkins暂时就不多介绍了。

在介绍Hudson之前给大家推荐一本书,这本书是来自许晓斌老师的《Maven实战》,本篇文章会借鉴该书的内容,小Alan也把这本书看完了,这是一本非常值得购买的书,作为一名程序猿可以买下来收藏。

接下来,让我们一起进入Hudson的世界:

第一步:安装Hudson

Hudson下载地址:http://hudson-ci.org/,下载完成后就能获得一个hudson.war文件,如图:

注意事项:Hudson必须运行在JRE1.5或更高的版本上。

最简单的启动方式是在命令行直接运行hudson.war(这里不演示这种方式,有兴趣的童鞋去找我二奶度娘问问就知道怎么玩了)。

Hudson.war顾名思义,既然是一个war文件,自然可以被部署到各种Web容器中,如Tomcat、Glassfish、Jetty及Jboss等。

这里以Tomcat7为例,只需要把Hudson.war扔到Tomcat的部署目录webapps下,然后去bin目录,运行startup.bat,如图:

待tomcat启动完成后,打开浏览器访问http://localhost:8080/hudson就能看到hudson的界面了。

首次运行Hudson会进入如下一个界面,要你选择你所需要安装的插件,选择好需要安装的插件后点击install或者finish,如图:

以后再次访问Hudson都会直接进入Hudson的首页,如图:

第二步:准备使用Hudson进行持续集成所需要的环境

①准备JDK运行环境:JDK环境还要我教你怎么搭建的话,你后面可以不用看下去了,作为一名猿,我是绝对不希望看见你这样的猿的,交配还得看基因好不好呢,好了不开玩笑了。

②准备Subversion仓库:在正式创建Hudson持续集成任务之前,需要准备好版本控制系统。常见的版本控制工具有CVS、Subversion、Git、Mercurial等。Subversion可能是当前使用范围最广的版本控制工具吧?反正我不知道大家喜欢用什么,但是我还是比较喜欢用Subversion,通俗点说就是SVN。SVN的安装我就不多扯了,我二奶度娘肯定知道的,没事多找我二奶谈谈人生,聊聊理想。

③准备项目管理框架:这里我会使用Maven,个人在工作的过程中觉得Maven真的是非常不错的,没用过的猿或者用过的猿都建议深入学习一下,Maven的安装也是so简单,别告诉我你不会,不会找一下我二奶度娘。

第三步:Hudson的基本系统设置

在创建Hudson持续集成任务之前,需要对Hudson系统做一些基本的配置,包括JDK安装位置和Maven安装位置,Hudson会使用这些配置好的JDK和Maven进行持续集成任务。也可以使用Ant或者Shell来持续集成项目,一样的要配置好安装位置。

点击Hudson首页左边的“系统管理”,然后单击页面右侧的“系统设置”以进入系统设置界面,如图:

在系统设置页面,首先要配置的是Hudson将使用的JDK。在页面中找到对应的部分,然后单击Add JDK按钮,Hudson就会提示用户进行安装。Hudson默认会提示自动安装JDK,可以看到Install automatically的复选框是被选上的,但是不建议自动安装,一般作为一个开发人员,本机上都是有JDK的,没必要花时间去等待Hudson再次下载JDK。手动输入本机JDK的位置(往往就是JAVA_HOME环境变量的值)。

可以配置多个JDK,需要项目支持多个不同版本JDK的时候非常有用,这里不多介绍。

Maven的配置与JDK类似,不再多说,如图:

最后,别忘了单击页面下方的Save按钮保存系统设置,如图:

第四步:创建Hudson任务

单击页面左边的新建任务,然后在页面右边选择任务的名称及类型。对于一般的maven项目来说,可选择的类型有Build a free-style software project和Build a maven2 project。前者不仅支持maven项目,还支持其它类型的构建工具,如Ant、Shell。这里我们选择第一种,这种方式更可控制,当任务出现问题的时候也更容易检查,如图:

输入任务名称,并选择free-style类型后,单击OK按钮即可进入详细的任务配置页面,如图:

第五步:Hudson任务的基本配置

首先是项目的名称和描述,接着是一个重要的选项Discard Old Builds。该选项配置如何抛弃旧的构建。Hudson每执行一次构建任务,就可以保存相应的源代码、构建输出、构建报告等文件。很显然,如果每次构建相关的文件都保存下来,将会渐渐耗光磁盘空间。为此,Hudson提供两种方式让用户选择保留哪些构建任务相关的文件,它们分别为:

□Days to keep builds:如果其值为非空的N,就仅保留N天之内的构建文件。

□Max # of builds to keep:如果#非空,就仅保留最多#个最近构建的相关文件。

如图,表示最多保留10个最近的构建,如图:

第六步:Hudson任务的源码仓库位置

接着需要配置项目的源码控制系统。在项目配置页面的Source Code Management部分,选择Subversion单选按钮,然后在Repository URL文本框中输入项目的Subversion仓库地址。一般来说,该部分的其他选项保留默认值即可(如果在界面没有看见这些东西,则说明Hudson Subversion Plug-in插件没有安装),如图:

 

需要注意的是,如果访问Subversion仓库需要认证,Hudson会自动探测并提示用户输入认证信息。因为我用的是局域网上的SVN,所以不需要认证,这里没有切实的图片给大家演示,如图:

 

单击enter credential后,Hudson会弹出一个页面让我们选择认证方式并输入认证信息。输入正确信息之后,Hudson就能读取仓库源代码了,如图采用用户名和密码的方式进行认证:

第六步:Hudson任务的构建触发配置

Build Triggers部分配置的是触发构建的方式。可选的三种方式分别为:

□Build after other project are built:在其他项目构建完成之后构建本项目。

□Build periodically:周期性地构建本项目。

□Poll SCM:周期性地轮询源码仓库,发现有更新的时候构建本项目。

我们选择第三种方式,也是最常用的构建方式,既然是轮询,就需要配置轮询的频率,Hudson使用了著名的UNIX任务调度工具Cron所使用 的配置方式。大家自己找我二奶度娘了解一下。如图:

 

我配置的是每隔15分钟轮询一次。

第七步:Hudson任务的构建配置

接下来要配置Hudson使用运行Maven命令构建项目。单击Build部分中的Add build step下三角按钮,然后选择Invoke Maven 3(如果没有看见这个,说明没有安装Hudson maven3 Plugin),如图:

 

这里就会默认使用我们在系统配置中配置的maven构建项目,指定好要运行的命令,如图:

需要注意的是,日常持续集成任务如果成功的话,都会生成快照版的项目构建。如果维护了一个私服,那么持续集成任务就应当自动将构建部署到私服中,供其他项目使用。单击最下方的Save按钮保存配置。这时,可以单击页面左边的“立即构建”来手动触发第一次集成。如图:

这样,一个简单的持续集成任务就配置成功了。