hudson+ant+svn持续集成环境搭建
CI 持续集成环境搭建:
说明:主要工具,Hudson,Ant,SVN,Tomcat
这里需要强调一点,hudson在使用ant脚本进行项目build的时候,出现无法正常加载变量的问题,将ant加入环境变量,ant –version 正常显示,但是hudson就是无法build,而换成Tomcat就没有任何问题,这个问题有点奇怪,我一直很信任resin的,结果有这个问题,有点失望~
一、准备工作
下载 hudson.war 本文结束的地方提供下载
Resin 服务器 resin-3.1.10.zip 已换成apache-tomcat-6.0.29
二、将apache-tomcat-6.0.29 解压
将 hudson.war放到 apache-tomcat-6.0.29下的webapp
将 resin的默认访问端口改成网站访问默认端口80,个人习惯,非必须
启动tomcat
访问:http://localhost/hudson/
出现 hudson的首页,表明hudson 发布成功了:
三、当hudson搭建好了以后,就可以开始进行持续集成环境的搭建了
打开hudson首页,进入系统管理 –》系统设置 ,这个时侯你会看到
点击右侧的帮助可以按照提示修改主目录的路径,这里我按照第一种方式进行修改,在环境变量中配置 HUDSON_HOME=E:\Servers\CI\hudson
重启tomcat
,刷新页面,则主目录修改为你指定的目录。
设置JDK:
Hudson 目录改完成以后,开始对其进行系统配置,这里我需要将ant,SVN,JDK等在hudson中进行配置。
系统管理 --à 系统设置
配置JDK ,我没有选择自动安装,自己配置一个jdk,选择自动安装的同学可另外试试:
另外jdk还是可以配置多个的,这里我只使用了一个。
设置配置邮件提醒:
url也可以写成localhost,就是有告警,看着别扭,我就用IP了
配置完成邮件信息后,点击红色按钮,即可接收测试邮件,这里我用gmail邮箱填写的,不过发送没成功。用公司邮件来填写,发送成功了,回家可以再试试别的邮箱。
也开始点击 Advanced ,对邮件进行安全设置。这里略过
暂时先配置这些,具体和项目相关的,在具体的任务中进行配置。
点击保存。
四、创建任务:
新建任务,创建项目
有几种可以创建的项目,我使用的是第一种创建方式。
如果你的项目是maven的项目,可以使用 Build a maven2 project
其余的没做研究呢。
创建完成后,可以针对这个项目进行配置,我这里持续集成的源码来自SVN ,所以需要将SVN的URL配置上。
针对项目设置SVN:
创建源码触发器:
选中 Poll SCM ,在出现的Schedule 里面设置获取源码的时间,格式点击右边的帮助可以得到说明:
MINUTE |
Minutes within the hour (0-59) |
HOUR |
The hour of the day (0-23) |
DOM |
The day of the month (1-31) |
MONTH |
The month (1-12) |
DOW |
The day of the week (0-7) where 0 and 7 are Sunday. |
例如设置(*/2 * * * *),每隔两分钟进行一次获取代码,进行检查,当发现有新代码提交后,则进行build,build成功则发布最新版本包。
设置 Archive the artifacts
Files to archive | cmp/target/report/**/*,cmp/target/deploy/*.zip |
将发布的版本设置打包路径,基础目录是从项目的workspace开始的,也就是说当前设置的目录是workspace/cmp/target 下的目录
如果此目录设置错误,hudson会给出提示。
设置完成这个以后,在你创建的任务中,点击立即生成,则开始新版本的build。当你build成功的时候,点击该版本可以看到 生成Artifacts
点击进入,可以下载你打包的内容,具体的打包设置,根据你的ant脚本来确定。
到这个阶段,hudson就已经搭建完成了。
=====================================================================
此部分内容摘自http://jdonee.iteye.com/blog/315440。做个收藏~
Project name :我已经把这个项目命名为HeliosJMXTrunk ,但你也可以在这里修改它。 Description : 这是一个自由项,主要用来说明你关于这次构建工作的描述。可不填。(帮助:这说明放在项目的首页,以便访问者可以知道这个工作的内容。您也可以在这里使用任何HTML标记。) Discard old builds : Hudson默认将保留过去的构建,除非你事先选中此框。(帮助:这里控制着您想要在Hudson所在的磁盘把构建记录存储的有效期(诸如控制台输出、编译产成品等等)。Hudson为此提供了两个标准:1。时间驱动。在Hudson中您可以判断如果达到一定时限来删除一条记录(例如,七天前)。2。数量驱动。在Hudson中您可以确保它拥有N份构建。如果又有新的构建开始,最早的那份(记录)就将被删除。Hudson也可以让您建立的个别构建定义为'永远保持这个记录',以便防止某些重要的构建被自动丢弃。) This build is parameterized : 如果选择此选项,Hudson将允许您提供一套任意的键值对参数,它们会被传递到构建过程里。配置的参数往往是构建运行环境中的一些环境变量。(帮助:当您使用了Hudson的各种自动化,有时要求在构建过程中提供一组用户的输入,使用“parameterize”就能够更方便构建。例如,您可能会设立一个按需测试,在那里用户可以提交一个二进制文件的压缩文件来进行测试。本节参数可以完全按照您构建的需要配置。参数是以名字区分的,所以您可以有多个参数,只要它们名称不同。
关于此功能的更多资料请查看维基专题讨论 。) Enable project-based security : Hudson支持全面的安全方案,可以强制用户在通过身份验证后,再访问Hudson网页;它也可以通过控制用户的权限来管理用户的工作。在这个Hudson例子中我没有配置安全
- Quiet period : 在这里您可以配置一个静态监控,当构建准备按某个计划运行时,实际上它就已经在执行了。
- Use custom workspace : 默认情况下,Hudson将在${jboss-home}/.hudson/jobs/[项目名称](注:Linux环境 )下创建一个工作区 。此选项将允许您使用指定的地址替代(它)。
- Subversion
- CVS
- None
Build periodically : 此选项 (也是使用定时作业表达式)仅仅通知Hudson按指定的频率对项目进行构建,而不管SCM是否有变化。我这个作业就属于目标测试环境是按某种方式定期修订的而SCM却是静态的情况。如果您想在这个作业中运行一些测试用例的话,它可能就很有帮助。
Add build step : 按一下这个按钮,添加了一项指令以执行构建脚本。您的指令可以是下列之一:
- 执行 Shell
- 执行 Windows 批处理
- 使用Ant(这是我将要使用的选项,在下面我会做详细的说明)
- 使用Maven