二.Hudson 简介
Hudson 是一种革命性的开放源码 CI 服务器,它从以前的 CI服务器吸取了许多经验 教训。Hudson 最吸引人的特性之一是它很容易配置:很难找到更容易设置的 CI 服务器,也很难找到开箱即用特性如此丰富的CI 服务器。Hudson 容易使用的第二个原因是它具有强大的插件框架 ,所以很容易添加特性。例如,一个 Hudson 插件可以随时间的推移跟踪FindBugs 和代码覆盖。它还可以报告测试结果的趋势(来自 JUnit 或 TestNG)以及构建结果和对应的执行时间。
Hudson 需要运行 Java 5。如果需要使用 Hudson 附带的嵌入式 容器(Winstone)之外的其他容器,那么只需使用一种 Servlet 2.4 容器。对于大多数情况,Winstone 就足够了。
三.Hudson使用
CI 过程的最后一个方面是 CI 服务器本身。CI服务器在整个开发过程中的主要作用是控制者:当服务器在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么 CI服务器将通知相关方面,然后继续监视存储库。它的角色看起来是被动的;但是,它是快速反映问题的关键。
安装 Hudson
使用 Hudson 的主要好处之一是它的设置很简单。在最简单的情况下,Hudson 只需要两个步骤:
java -jar hudson.war
。 这样就可以了。因为下载的是一个 WAR 文件,所以如果愿意,可以将它部署在 Tomcat 或 JBoss 等容器中。这完全由您自己决定。当然,Hudson 假设在安装它的机器上运行着 Java 5,而且如果定义了JAVA_HOME
环境变量,Hudson 就会使用它。(正如前面提到的,Hudson 需要 Java 5。)
在安装并运行 Hudson 之后(将 WAR 文件部署到 servlet 容器或从命令行执行java -jar hudson.war
),启动浏览器并访问默认安装位置。如果通过命令行运行 Hudson 而且您在本地机器上,那么可以访问http://localhost:8080/
。
如果一切正常(实际上不太可能出问题),应该会看到图 2 所示的 Hudson 启动页面。
配置 Hudson
如果访问 Hudson 主页的本地实例并单击左上角的 Manage Hudson 链接,应该会看到图 3 所示的可配置选项列表。
图 3. 配置 Hudson 非常容易
参数说明:
system.message 填写一些说明信息
Quiet period:hudson定时构建工程的时间(秒)
Enable security :设置hudson登陆的规则(默认为匿名登陆)
TCP port for JNLP slave agents:不了解JNLP不敢胡写总之就是三种方式:固定(fixed) 随机(Radom) 不使用(disabled),使用固定时可以填入JNLP信息
security realm:可以使用中间件容器,数据库,LDAP来验证安全,具体怎样用法没用过,以后会有更新,研究中.
authorized:可以设置身份的验证方法:系统用户,匿名用户,自定义用户,还有继承用户(此处也在研究中,建议使用匿名用户)
JDK installations:设置JDK的安装路径
Shell executable:设置window shell命令
Ant installation:设置ant 的安装路径
mave installation设置mave的安装路径
cvs executable:设置cvsnt执行进程的路径(cvs.exe)
.cvspass file:设置cvsnt管理员文件的路径(passwd文件)
e-mail notification:设置当发生错误时发送的邮箱地址
hudson url:就是hudson的默认地址
还可以配置服务器的其他几个方面,比如向 Hudson提供一个电子邮件服务器的位置,以便在构建失败时接收电子邮件。根据您的组织设置电子邮件的方式,可能需要让系统管理员帮助设置这个特性。设置电子邮件并不是必需的;Hudson 还支持以 RSS作为通知机制,对于某些人来说,这种方式比电子邮件更好。究竟选择哪些通知机制完全取决于您。(注意,这里说的是“哪些”,也就是说,可以同时使用多种通知机制!)
在 Hudson 中配置项目
既然 Hudson 已经能够与 SCM 存储库通信了,就该配置项目了。这个示例所用的项目称为 solar-ci
。在 Hudson 主页上单击左上角的 New Job 链接。这时会看到图 5 所示的屏幕:
该页面可以使我们通过 hudson 来管理 cvs 里的一个对应的工程
Project name: 工程名称
Description: 描述信息
Discard build: 如果选择此项可以设置 build 记录保存的天数 , 或者 build 记录保存的数理 , 或者只保存最新的 build 记录 , 一般不需填写
Advance project options: 可以设置 hudson 定时检查 cvs 工程的时间间隔 , 还可以指定 cvs 工程 check out 到本地的工程路径 , 一般不需要填写
Source code management: 我们选择 cvs 将出现以下参数 :
Cvsroot: 将写 cvs 登陆字符串 , 格式 ( :protocol:user:password@host:path), 例如: :pserver:cvsadmin:[email protected]:2401:/CVSNT/Repository, 使用cvs 必填Modules: 填写cvs 仓库下的具体工程名, 使用cvs 必填
Branch: 填写分支名称, 也可以勾选this is a tag,no a branch 指定标记名称选择subversion 可以进行相应的subversion 设置
Build trigger 可以设置hudson 自动执行的一些动作,build after others projects are built 指定hudson 构建完成后需要继续构建的工程名
Build periodically 根据hudson 定义的语法规则来设定自动构建工程的时间间隔
Post-build actions
设置一些构建完成后的动作, 如放邮件, 打包, 产生测试报告, 产生java doc 等.
点击ok 保存设置
使用hudson