二.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 只需要两个步骤:
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 主页的本地实例并单击左上角的 Manage Hudson 链接,应该会看到图 3 所示的可配置选项列表。
参数说明:
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 已经能够与 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 定义的语法规则来设定自动构建工程的时间间隔
设置一些构建完成后的动作, 如放邮件, 打包, 产生测试报告, 产生java doc 等.
点击ok 保存设置
使用hudson
进入刚配置的项目, 可以在左侧build history 看到历史的build 记录, 点击build now 可以手动执行构建动作, 完成后可以通过记录标记的颜色来看是否出错, 红色有错, 蓝色成功. 点击记录查看详细信息, 如果有变化hudson 将列出类信息