1. 持续集成就是快速 且高频率 地自动构建 项目的所有源代码 ,并为项目成员提供丰富的反馈 信息。
2. 下图形象地展示了整个持续集成的过程:
3. 一次完整的持续集成包含如下步骤
1) 持续编译 (旧代码应全部删除,重新编译所有最新代码)
2) 持续数据库集成 (清理数据库,重新创建表结构)
3) 持续测试 (单元测试仪 + 集成测试)
4) 持续审查 ( Checkstyle 、 PMD 、测试覆盖率,频率可以低一些)
5) 持续部署
6) 持续反馈
4. 持续集成的好处 :
1) 尽早暴露问题。(修复问题成本低)
2) 减少重复操作。
3) 简化项目发布。
4) 建立团队信心。
5. Hudson(http://hudson-ci.org ) 提供了灵活的插件扩展框架,许多公司都选择了它,如 JBoss (http://hudson.jboss.org ) 和 Sonatype (https://grid.sonatype.org/ci ) 。
6. Hudson 必须运行在 JRE1.5 以上。下载后为 hudson.war 可以直接运行:
java –jar hudson.war
其默认端口为 8080 ,可以访问 http://localhost:8080 。也可以使用 --httpPort 指定端口:
java –jar hudson.war –httpPort=8082
也可以将 war 包部署到 Jetty , Tomcat 等 Web 容器中。( context path 为 /hudson )
7. 在 Hudson 登录页面左边的“管理 Hudson ” (Manage Hudson), “系统管理”( Configure System )中可以配置多个 JDK ( Hudson 可以自动安装 JDK ),多个 Maven(Hudson 可以自动安装 Maven ), Email notification 配置( SMTP 服务器,接收者列表等)
8. Hudson 在新建任务时,允许用户“ Build a free-style software project ”(不仅支持 Maven ,还支持 Ant 、 Shell 等其他构建工具),“ Build a maven2 project ”(使用 Hudson 自带的 Maven )也可以复制一个已有的任务,或者监视一个外部的任务。
9. Hudson 支持三种方式触发构建:
1) Build after other projects are built
2) Build periodically
3) Poll SCM
10. H udson 使用著名的 UNIX 任务调试工具 Cron(http://en.wikipedia.org/wiki/Cron ) 所使用的配置方式来配置轮询代码仓库的频率:用 5 个字段表示不同的时间单位,字段之间用空格分隔:分( 0-59 ) 时( 0-23 ) 日( 1-31 ) 月( 1-12 ) 星期几( 0-7 , 0 , 7 表示周日)
几种特殊匹配符:
1) * :匹配范围内任何值
2) M-N :匹配 M-N 范围内任何值
3) A , B , … , Z :匹配多个值
4) */X 或 M-N/X :范围内能被 X 整除的值
星期几与日期是或的关系。
11. Hudson 的任务状态有:
蓝色:最近一次构建是成功的
红色:最近一次构建是失败的
黄色:最近一次构建成功但不稳定(测试失败了)
灰色:未被执行过或者已被禁用
任务的天气情况有:
晴: 80% 以上的集成是成功的
晴有云: 60%-80% 的集成是成功的
多云: 40%-60% 的集成是成功的
雨: 20%-40% 的集成是成功的
雷雨: 20% 以下的集成是成功的
12. Maven 可以自定义视图从而对任务进行分类,并自定义想监控的属性列。
13. 在任务配置页面中可以设置 ”Post-build Actions” ,选择 ”Publish JUnit test result report” ,将 ”Test report XML” 设为 **/target/surefire-reports/TEST-*.xml , Hudson 就会在任务状态页面中显示 maven-surefire-plugin 生成的测试报告。
14. 在 Maven 构建命令中添加 –Dmaven.test.failure.ignore ,失败的测试就不会导致构建失败,任务状态就不会变成红色,但会变成黄色。
15. Hudson 能够在 Poll 代码仓库的时候自动提取 checkin 用户的信息。
16. Hudson 默认会在以下情况发送 email notification:
1) 失败的构建
2) 成功构建后的一次不稳定构建
3) 失败或不稳定构建后的一次成功构建
用户可以配置是不是每一个不稳定构建都发 email 。
17. Hudson 使用用户目录下的 .hudson/ 目录作为其工作目录,可以通过设置HUDSON_HOME来改变其位置。 userContent 目录可以存放任何用户文件,通过 Hudson 的 Http 服务可以访问该文件(在 Http://localhost:8080/userContent 下)。