译自: http://www.javaworld.com/javaworld/jw-12-2008/jw-12-hudson-ci.html
Build periodically : 此选项 (也是使用定时作业表达式)仅仅通知Hudson按指定的频率对项目进行构建,而不管SCM是否有变化。我这个作业就属于目标测试环境是按某种方式定期修订的而SCM却是静态的情况。如果您想在这个作业中运行一些测试用例的话,它可能就很有帮助。
Add build step : 按一下这个按钮,添加了一项指令以执行构建脚本。您的指令可以是下列之一:
Ha!Ha!看来这些信息太多了,让您有点无法把握吧!没关系,为了让您更好的掌握这一切,您将在下面看到一个构建作业的样例。这样一来,您就会了解到这些配置项是如何运用到实践中的。
下面是一个如何在实际作业中配置我的Hudson服务器。这项作业构建的是我命名为“HeliosJMX”的实用类库。这一节的所有图片都是我为了描述上一节而因此新建一个作业的截图。
在图14中,您可以看到项目的名称、说明和一个废弃策略。(指示Hudson保持过去5次构建,但废弃更前的构建。)
图15显示了在此次作业中Subversion的安装位置。 这个Subversion仓库的URL网址存放在java.net上: https://helios.dev.java.net/svn/helios/helios-jmx/trunk(貌似现在进不去了,因为需要密码)。Local module directory属性是一个可选的和额外的子目录,它将为此次构建创建一个工作区。
“Use update”复选框是很重要的。这是Hudson准备从工作区构建执行前先刷新Subversion仓库以获取最新源码的最快捷的方式。这一动作是行之有效的,并在大多数情况下也相当快。警告,如果源构件已从仓库删除,工作区也会利用此步骤持续更新源码。另一种选择当然是禁用此选项,若是这样,Hudson将清除工作区并从源码仓库中重新注入。
最后一个选项是指定一个源代码仓库浏览器,诸如FishEye或VisualSVN 。如果您拥有下面列表提供这些产品的一种,就选择适合的浏览器并把它指着自己的源代码仓库地址。
在图16中,您可以看到我填写的构建触发器详情:我每隔5分钟就检查一次Subversion,它们一有变化就构建一次。
(帮助:该字段遵循cron[Linux下任务定时系统]的语法(两者间仅仅有轻微差异)。
具体来说,每行由TAB键或空格隔开的5个字段组成:
MINUTE HOUR DOM MONTH DOW
MINUTE 一小时内多少分钟(0-59)
HOUR 一天内多少小时(0-23小时)
DOM 一个月内多少天(1-31)
MONTH 每月(1-12)
DOW 星期几(0-7),其中0和7都表示周日。
如果要指定一个字段允许多个值,就按下面提供的操作步骤(指定)。
优先顺序如下:
'*' 可用来指定所有有效的值。
'M-N' 可以用来指定一个范围,比如“1-5”
'M-N/X'或'*/X' 可用于在指定范围内跳跃一个X的值,比如在MINUTE字段中"*/15"表示"0,15,30,45","1-6/2"表示"1,3,5"。
'A,B,...,Z' 可以用来指定多个值,比如“0,30”或“1,3,5”。
任何空白行和'#'开始的行都将表示为注释而不予理睬。
此外,''@yearly', '@annually', '@monthly', '@weekly', '@daily', '@midnight', '@hourly'都是支持的 。
举例说明:
#每分钟
* * * * *
#每一小时后第5分钟
5 * * * *
)
图17显示了我定义的Ant任务,以便执行构建过程。配置选项如下:
图18显示了构建完成后我定义的一些动作:
图19显示了构建完成后我定义的更多的动作:
Publish FindBugs analysis results : 我的构建脚本执行FindBugs静态代码,它用于分析作业的源代码,并生成一个调查报告。此选项表明Hudson FindBugs插件已安装。它指示Hudson检索FindBugs XML结果报告,汇总它们到当前作业的历史趋势中并且暴露在当前作业的主页上。FindBugs插件的高级选项允许您当FindBugs上报时确定断言的类别,以及在Hudson获取关于当前作业的状态时,它们将如何影响最终的测定。(更多信息请查阅关于题为"作业状态"这一节)
E-mail notification : 定义一个邮件列表( 多项用空格间隔),以便当构建失败时发送一份通知。当一次作业总是不稳定或者被终止,"Send email for every unstable build "就可以不选,以阻止Hudson不断发送一份已获知条件的邮件通知。
Publish Cobertura coverage report : 我的构建脚本使用了Cobertura作为依据代码覆盖指令产生类文件的容器。当JUnit测试运行时,Cobertura 监测代码覆盖范围并且在测试完成后生成一个覆盖率报告。此选项表明Hudson Cobertura已经安装。它指示Hudson检索已确定的Cobertura XML 覆盖率报告,汇总它们到当前作业的Cobertura历史趋势中并且暴露到当前作业的主页上。标题为“Coverage Metric Targets”的选项表明在Hudson获取关于当前作业的状态时,允许你通过指定代码覆盖地图中的覆盖程度来影响最终的测定。(更多信息请查阅关于题为"作业状态"这一节)
Ha!总算到这一点了,如果您已经确认了这个新的作业,现在就运行它吧,看看它是怎么工作的。不管您是如何配置您的构建触发步骤,您都能够随时请求一次特定的构建(总之,随需应变),除非您选择了Disable Build。当您打算建立一个新的构建作业,或者调试像我上面描述的这些截图,如果没有等到构建触发器讲完是没有什么意义的。在下一节中,我将告诉您如何请求一次特别的构建,以及观察它到底是如何运行作业的。