Hudson使用说明一、Hudson介绍Hudson是一个可扩展的持续集成引擎。主要用于:1.持续、自动地构建/测试软件项目。2.监控一些定时执行的任务。Hudson拥有的特性包括:1.易于安装-只要把hudson.war部署到servlet容器,不需要数据库支持。2.易于配置-所有配置都是通过其提供的web界面实现。3.集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail实时通知。4.生成JUnit/TestNG测试报告。5.分布式构建支持-Hudson能够让多台计算机一起构建/测试。6.文件识别-Hudson能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。7.插件支持-Hudson可以通过插件扩展,你可以开发适合自己团队使用的工具。二、所需软件准备1.JDK2.Maven3.Subversion4.Tomcat或Jboss5.Hudson(Hudson.war)三、搭建环境1.安装jdk并在环境变量中设置JAVA_HOME,值为你的jdk安装目录。2.解压maven的包到本地目录并在环境变量中设置M2_HOME,值为maven软件所在目录,把M2_HOME/bin加到你系统的path目录中去。3.安装tomcat或jboss。4.需要配置HUDSON_HOME环境变量,这个变量不是使用HUDSON所必须配置的,如果不配置,Window用户HUDSON默认将工作区放置在C:\DocumentsandSettings\用户名\.hudson下,如果你不想使用默认的工作区,可以在环境变量中配置HUDSON_HOME,指向你的新目录。5.下载Hudson(只是一个hudson.war)把它放在tomcat安装目录/webapps下或Jboss的server\default\deploy下,启动tomcat或jboss服务.四、Hudson使用在确认服务启动后在浏览器输入(我的port有修改)回车后如果一切正常,应该会看到图1所示的Hudson启动页面:这里进入hudson后,点击这个标识会出现一些提示,可以帮组理解选项信息。图1配置Hudson全局设置1.在Hudson主页的本地实例并单击左上角的系统管理链接,应该会看到图2所示的可配置选项列表。图22.在系统管理页面上单击系统设置链接对Hudson进行全局设置,配置后的页面如图3、图4、图5所示(这里有一个启用安全的选项,在后面的‘八、其他配置说明’中会有详细说明,用于Hudson的用户管理)。图3说明:1.填写JKD说明:1.1name可以按照自己爱好随意设定1.2JAVA_HOME为jdk的安装目录2.填写Maven说明2.1name可以按照自己爱好随意设定2.2MAVEN_HOME为Maven的安装目录图43.填写邮件发送用户说明(当系统自动集成完成后要向用户的邮箱发送信息,此邮箱为系统邮箱,负责发送邮件。当有具体project时,会有指定的用户邮箱组来接收集成完成后的邮件信息。)3.1SMTPserver为邮件服务器3.2Defaultusere-mailsuffix为邮箱后缀3.3SystemAdminE-mailAddress为系统邮箱,负责发送信息邮件3.4HudsonURL是默认的Hudson项目的url3.5点击右下角的Advanced添加邮箱用户名和密码3.6点击右下角的Test…可以测试向邮箱发送邮件4.点击save保存全部信息图55.管理插件:图2Hudson可以安装许多插件,点击管理插件,会看到页面上显示了如下图:更新:可选插件:Hudson提供了一些可选择的插件,会出现插件列表。已安装:显示已安装的插件。高级:你自己的插件可已在这里上传。五、创建项目在Hudson主页单击左上角的创建任务链接,如图6,填入一个项目名,选择Buildamaven2project,点击ok创建即可。图6六、项目配置1.在创建项目单击ok按钮后会自动调整到配置项目页面,其配置如图7、图8、图9、图10所示,单击save按钮保存。图7说明:1.填写Subversion说明1.1RepositoryURL为svn资源的访问地址(即项目的svn地址)1.2Localmoduledirectory(optional)(可选)1.3Useupdate选项选上,可以更新新提交的代码,不用重新checkout(勾选此选项后,只有第一次是checkout,其他每次构建时都是update)图82.勾选Buildperiodically选项出现Schedule选项Schedule的配置规则是有4个空格隔开的字符组成,从左到右分别代表:分时天月年。*代表所有,012,20***表示在任何年任何月的任何天的12和20点的0分进行构建。(建议0,15,30,45****这样每个小时都会在0分15分30分45分的时候进行一次构建)3.勾选PollSCM选项出现Schedule选项当您选择此选项,您可以指定一个定时作业表达式来定义Hudson在什么时间检查一下您源代码仓库的变化。如果发现变化,就执行一次构建。例如,表达式中填写0,15,30,45****将使Hudson每个小时都会在0分15分30分45分的时候检查一次您源码仓库的变化。图94.Build为默认值即可RootPOM:指定打包文件Goalsandoptions:-Dtest-DfailIfNoTests=falsefindbugs:findbugs(不执行测试用例,大要被打包;声明findbugs,打包完成后执行findbugs)。添加插件后:要在pom文件中注册插件,之后会生成fidbugs的文件供hudson读取。buildpluginsplugingroupIdorg.codehaus.mojo/groupIdartifactIdfindbugs-maven-plugin/artifactIdversion2.3.1/versionconfigurationxmlOutputtrue/xmlOutputxmlOutputDirectorytarget/site/xmlOutputDirectory/configuration/plugin/plugins/build5.BuildSettings为系统集成后,集成信息发送的目的邮箱,也就是项目代码提交人员的邮箱,可以使多人的邮箱,用空格分隔(这里的邮箱为信息接收者的邮箱,发送者的邮箱为前面配置的系统邮箱)。第一个选项是集成结果不稳定时,发送邮件(蓝色为成功,即稳定)第二个选项是谁提交代码后,若集成不稳定,hudson会向提交代码的用户发送邮件,但邮件地址是:svn用户名+系统配置中的邮箱后缀。(这里说明taobao的邮件服务器配置后一直测试不通过,所以前面系统邮件的SMTP设置成了126邮箱的SMTP。)例如:上边配置的系统邮箱后缀是@126.com,则发送的邮箱地址是:用户名@126.com注意:这里要是不管构建的情况如何都发送邮件,底下的两个勾选项就都不用勾选了。图10七、使用hudson1.在所创建项目的主页上单击立即构建链接,可以手动执行构建动作,完成后可以通过记录标记的颜色来看是否出错,如图11、图12所示。作业状态:表1中分级符号概述了一个作业最近一次构建会产生的四种可能的状态:oSuccessful:完成构建,且被认为是稳定的。oUnstable:完成构建,但被认为不稳定。oFailed:构建失败。oDisabled:作业已禁用。作业稳定性:当一个作业构建已完成并生成了一个未发布的目标构件,如果您准备暗中评估此次构建的稳定性,Hudson会基于一些后处理器任务为构建发布一个稳健指数(从0-100),这些任务一般以插件的方式实现。它们可能包括单元测试(JUnit)、覆盖率(Cobertura)和静态代码分析(FindBugs)。分数越高,表明构建越稳定。表2中分级符号概述了稳定性的评分范围。任何构建作业的状态(总分100)低于80分就是不稳定的。表1.作业状态表2.作业稳定性图11图121.构建历史查看历史的构建记录。2.点击warehouse连接可以查看warehouse项目的构建信息,如图13。工作区:可以查看project的一些信息,除java代码。变更集:可以查看每次代码提交后的代码变更记录。删除project:删除warehouse这个项目(最好不要删除,页面删除很难成功,可以在服务停掉之后到:C:\DocumentsandSettings\用户名\.hudson\jobs下手动删除,这是checkout下来的项目代码所放的位置)。设置:回到项目配置的页面,可对项目的配置信息进行重新设置(记得重启服务)。图13八、其他配置说明1.配置经过验证的用户才能进行页面的操作,即设置此选项后,会有权限管理,其配置页面如图14所示图14说明:1.1打开系统设置页面勾选启用安全选项,当选中启用安全后会出现安全域和授权策略两个选项:1.2在安全域中选择Hudson专有用户数据库,同时选中允许用户注册(容许进行用户注册,因为刚开始时没有注册用户,当进行了全部用户注册后可以把这个选择项去掉)1.3在授权策略中选择登录用户可以做任何事或任何用户可以做任何事,让登录后才能做任何事情或不登录也能做任何事情,单击save按钮后,在页面右上角有登录和注册链接1.4单击注册链接进行登录注册,(最下边显示的算是验证码)其注册界面如图15所示:图15注:如果启用了安全,登录与不登录显示的信息量是不同的。2.系统配置信息图16(点击后面,会出现说明信息)系统主目录:你集成项目的源代码所放的位置,即checkout下来的代码位置。系统消息:对hudson系统的说明信息。执行者数量:同时构建项目的数量,不要多,同时构建时间会很长。生成前等待时间:在执行构建前等待的秒数。图163.项目信息设置图17Projectname:此项目的名字,你会在C:\DocumentsandSettings\用户名\.hudson\jobs下找到此项目名。Description:对此项目的说明信息.Discardoldbuilds:是控制着您想要在Hudson所在的磁盘把构建记录存储的有效期。Hudson为此提供了两个标准:1。时间驱动。在Hudson中您可以判断如果达到一定时限来删除一条记录(例如,七天前)。2。数量驱动。在Hudson中您可以确保它拥有N份构建。如果又有新的构建开始,最早的那份(记录)就将被删除。这里输入的是5,也就是hudson确保5份构建。Thisbuildisparameterized:如果选择此选项,Hudson将允许您提供一套任意的键值对参数,它们会被传递到构建过程里。配置的参数往往是构建运行环境中的一些环境变量。(帮助:当您使用了Hudson的各种自动化,有时要求在构建过程中提供一组用户的输入,使用“parameterize”就能够更方便构建。例如,您可能会设立一个按需测试,在那里用户可以提交一个二进制文件的压缩文件来进行测试。本节参数可以完全按照您构建的需要配置。参数是以名字区分的,所以您可以有多个参数,只要它们名称不同。)DisableBuild:如果这里被勾选,这个项目将不会执行构建,直到选项禁用为止。(有时候,你会想暂停某个构建中的项目。选择此选项,这个项目的设置都会停止,若想开始构建,取消此选项就OK了。)AdvancedProjectOptions:这里是表示你可以对你的项目构建进行一定的设置,它下面包括三个小的选项:1.Quietperiod:时间可以根据项目的需要来设定。这里的这个时间是说明从构建开始到项目真正开始构建之间的时间差,比如,我将此时间设为300S,说明warehouse在要开始构建之前会有5分钟的时间缓冲,这个是非常人性化的,因为如果有大量的代码需要提交,会需要很长时间,如