前言
什么是持续集成,为什么要持续集成?本文对持续集成前后两种开发实践做了对比分析,从而直观的感受到持续集成的好处。
传统开发模式存在的问题
1.Bug总是在最后才出现。
2.越到项目后期,问题越难解决。
3.软件交付时机无法保障。
4.程序经常需要变更。某些项目中,程序会经常需要变更,特别是敏捷开发实践者。
5.无效的等待变多。开发在等待集成其他人的模块,测试人员在等待开发修复Bug,产品经理在等待新版本上线给客户做演示,项目经理在等待其他人提交代码。
6.用户的满足度低。
什么是持续集成
在软件工程中,持续集成(CI)是指将所有开发者的工作副本每天多次合并到主干的做法。Grady Booch 在1991年的 Booch method 中首次命名并提出了 CI 的概念,尽管在当时他并不主张每天多次集成。而 XP(Extreme programming,极限编程)采用了 CI 的概念,并提倡每天不止一次集成。
持续集成服务器
持续集成服务器就是能够采用自动化的手段,来解放人的双手,实现项目持续集成的工具。与之配套的软件有TeamCity、Hudson、Go,等。
本主将会就利用hudson+ant+JUNIT+EMMA 搭建持续集成环境,做一步一步的详细解剖.
持续集成工作流程
其流程大致如下图:
步骤
1.安装tomcat
1.1 wget tomcat
1.2 tar -zxvf ....
2.安装ant
2.1 wget ant
2.2 tar -zxvf
2.3添加环境变量 vi /etc/profile -->i --最后插入 eport ANT_HOME=/root/soft/apache-ant-1.8.4 -->esc,:wq!
--->保存,退出,然后运行:
#source /etc/profile
不报错则成功。
3.安装hudson
下载hudson包之后,然后解压将war包,丢到tomcat就OK了.
比较好的资料: http://www.cnblogs.com/fromweibo/archive/2011/11/18/2254705.html
按照此文章,基本没有问题.下面是我遇到的几个问题.
A: 改默认目录:找到tomcat/webapp/huson/WEB-INF/web.xml (如果没有该目录,先运行一次tomcat)
找到如下结点:
<env-entry> <env-entry-name>HUDSON_HOME</env-entry-name> <env-entry-type>java.lang.String</env-entry-type> <env-entry-value></env-entry-value> </env-entry> <env-entry-value></env-entry-value> --->改成:<env-entry-value>/opt/app/hudson</env-entry-value>
然后重启tomcat即可.
B:系统设置从出现如下信息:
Your container doesn't use UTF-8 to decode URLs. If you use non-ASCII characters as a job name etc, this will cause problems. SeeContainers
and Tomcat i18n for more details.
想修复这个问题,可以在 Tomcat 的服务器配置文件中添加 URIEncoding 属性。
找到tomcat的配置文件server.xml里找到如下结点
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>
在最后添加如下属性:URIEncoding="UTF-8" . 如下:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/>
2.配置hudson
参照http://www.docin.com/p-367524943.html
3.下载EMMA插件
选中点安装即可.如果不能连接外网的话,从外网采用下载方式,将下面来的hpi传到服务器.然后重启即可
4.新建项目,然后build即可.-------->见第二篇.
(其实最主要是的利用项目的ant脚本,进行编译与发布工作)