为了减少软件版本发布带来的时间消耗,释放开发人员的重复劳动压力,最近项目中确定进行持续化集成测试构建。构建方案主要是采用Bamboo+Ant+SVN来进行。现在广泛流行的是开源持续集成工具Cruise Control,但Bamboo这个持续集成工具是商业软件,以前听都没听过,为了跟Jira无缝集成,因此决定使用它。但这个工具在国内真是太不流行了,网上一点中文资料都没有,而且英文资料(包括用户手册)写得真不怎么样,就算你看完了也不一定能搞清楚怎么配置。
靠人不如靠自己。经过一段时间的研究和尝试,终于把整套构建方案完成了。在这里,分享给大家,以作参考。
一、环境准备(请一定要按照顺序来安装,可以避免一些配置的麻烦)
1. 安装JDK1.6,配置环境变量。注意最好安装在某个盘的根目录,一定不要安装在Program Files下面,否则其他开源软件很有可能不认这个环境变量的;环境变量就是配J***A_HOME和Path、ClASSPATH,不要说这个也不会配啊!
2. 安装Ant1.8.1,配置环境变量。注意点同上,环境变量就是配ANT_HOME和Path;另外也可以使用出名的Maven构建工具,各有所爱;
3. 安装SVN软件。我用的CollabNetSubversion-server-1.6.12-1.win32.exe,这个版本的好处是集成了Apache Httpd服务器和SVN服务,只要安装完成后SVN环境变量会自动配置,服务自动运行,不用手工配置了;但注意:安装目录也不能在Program Files下面,否则环境变量也是认不了的。切记!
4. 安装TortoiseSVN1.6.10客户端。出名的SVN客户端,一定要用!只要安装完成后直接可以使用了,不用配置环境变量;
5. 安装Bamboo软件。我用的版本是atlassian-bamboo-2.6.1-standalone.exe,注意这是商业软件,要给钱的。不过可以申请一个30天免费的试用License。安装完成后,直接使用浏览器打开地址:http://localhost:8085/,即可看到一个输入License的界面。在这个界面里面会自动显示根据你的机器产生类似这样的编码:XXXX-MMMM-SSSS-YYYY,复制这个编码。然后到Bamboo的官方站网申请License:https://my.atlassian.com/products/index/,注册后登陆,输入机器码进行申请(如下图一),最后复制License到刚才的本地页面中录入就完成注册。另外,接下来就是在本地Bamboo应用中注册一个用户账号,用来进行登陆配置使用。一定要记住账号密码啊,否则就找不回来需要重新Bamboo了。设置完成后,Bamboo会要求你设置bamboo_home目录,此目录中的xml-data目录是日后SVN Checkout 的工作目录。
6. 安装Tomca6.0.28应用服务器。直接下载一个绿色版本的Tomcat6.0.28,解压就可以直接使用了,不需要配置环境变量。
7. 安装ServU FTP服务器。创建账号密码,指定目录到Tomcat的webapps。
(图一)
二、创建SVN项目仓库
1. 在本地硬盘创建SVN仓库目录,如G:\svn_repository\mypersiondb。点击选中目录mypersiondb,右键菜单选择“TortoiseSVN”-“create repository here”,即完成项目仓库的创建;
2. 启动SVN仓库服务。打开运行DOS窗口,输入命令:svnserve –d –r G:\svn_repository\mypersiondb,即可启动SVN项目仓库服务;
3. 通过TortoiseSVN把个人项目导入到SVN项目仓库中。假设项目名称为:TestApp,主线是存放于trunk中。
三、创建ANT构建脚本
1. 第三方类包:jakarta-oro-2.0.8.jar、commons-net-2.0.jar,主要是用于FTP上传文件;注意:这两个Jar文件一定要存放于%ANT_HOME%/lib中才能在Ant中调用ftp的命令。
2. 创建build.xml文件;如下代码演示。
3. build.xml文件的注意要点:一是设置Bamboo的相关属性,如Home位置、Bamboo的Project-PlanKey名称、SVN Checkout文件的工作空间路径等;二是设置FTP的相关参数,如Username、Password、Servername(IP)等;三是设置ANT编译源文件的JDK版本,如“source=1.6”表示调用JDK1.6进行编译,如果开发Java代码的JDK代码与编译的JDK不一致会导致问题;四是设置编码类型:<compilerarg line="-encoding UTF-8 "/>,与编码时一致,否则出错。
四、FTP的配置
1. 注意FTP服务器配置账号时,应该指定到Tomcat6.0的安装目录下面的webapps中;
2. 当Ant构建脚本完成打包时,会把“TestApp.war”包使用Ftp命令上传到webapps目录中,Tomcat检查后会自动展开到ROOT目录中,实现自动部署;
五、Bamboo的Plan配置