用SVN+cruisecontrol 搭建持续集成开发环境
2010-04-01 19:04
751 查看
最近因为项目的需要,需要搭建持续集成开发环境。简单的说,持续集成就是要干这么一件事:持续集成与SVN配合,开发人员将代码上传到SVN上指定的文件夹下,持续集成cruisecontrol(简称CC)会自动从SVN上checkout代码,自动进行编译链接,生成可执行文件,而PM(也就是实验室管我们的老师)则通过web前端登录到CC服务器,从而查看每个‘码农’的每天代码的更改情况。可以说,CC为一个软件项目的整合提供了一个很好的平台。
废话少说,开始搭CC(Linux下),首先需要SVN的支持,我们假设SVN已经搭好了,并且所有码农的代码放在http://192.168.0.2/SVN/SMSSystem这个文件夹下。首先保证已经预装了Apahe , JDK , ANT(ANT可以不用自己装,在cruisecontrol)的代码包中有ANT,只需修改环境变量即可,SVN的客户端(CC要与SVN配合使用)。
首先,下载CC的压缩包cruisecontrol-bin-2.8.3.zip,解压包
cd cruisecontrol-bin-2.8.3 进入目录, 修改config.xml文件,在我这个项目中,修改的结果如下:
<cruisecontrol>
<project name="SMSSystem"> # 工程名
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/> # log信息
</listeners>
<bootstrappers>
<svnbootstrapper localworkingcopy="projects/${project.name}"/> #svn的地址
</bootstrappers>
<modificationset quietperiod="30">
<svn localworkingcopy="projects/${project.name}"/> #隔30秒查看SVN的修改情况
</modificationset>
<schedule interval="120"> # 隔120秒重新编译,但是SVN代码不变则不执行
<ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" target="make"/>
</schedule>
<log>
<merge dir="projects/${project.name}/target/test-results"/>
</log>
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}"/>
</onsuccess>
</publishers>
</project>
</cruisecontrol>
接着,我们要手动将SVN checkout一次(第一次必须要手动来checkout,以后就不用了)。
cd project #这个地方是放工程的地方
svn co http://192.168.0.2/SVN/SMSSystem
接着在SMSSystem文件夹下加入以下的build.xml(我们的开发是Linux + GCC)
<project name="SMSSystem" default="all">
<target name="all" depends="clean, make"/>
<target name="make">
<exec executable="make" failonerror="true" >
</exec>
</target>
<target name="clean">
<exec executable="make" failonerror="true" >
<arg value="clean"/>
</exec>
</target>
</project>
接着退到CC的主目录,执行./cruisecontrol.sh,CC服务就打开了,你可以通过web查看
http://192.168.0.3:8080/dashboard
几点说明:
1、所有的工程都要放在project这个文件夹下面
2、CC启动会去找config.xml ,启动后会通过ant命令去找每一个工程底下的build.xml
3、CC的安装不难,启动前在shell下键入javac , java , ant 都要保证成功,不能出现command not found
4、CC可以同时加入多个工程,只要保证每个工程底下有正确的build.xml,并且每个工程都配到config.xml里就可以了
废话少说,开始搭CC(Linux下),首先需要SVN的支持,我们假设SVN已经搭好了,并且所有码农的代码放在http://192.168.0.2/SVN/SMSSystem这个文件夹下。首先保证已经预装了Apahe , JDK , ANT(ANT可以不用自己装,在cruisecontrol)的代码包中有ANT,只需修改环境变量即可,SVN的客户端(CC要与SVN配合使用)。
首先,下载CC的压缩包cruisecontrol-bin-2.8.3.zip,解压包
cd cruisecontrol-bin-2.8.3 进入目录, 修改config.xml文件,在我这个项目中,修改的结果如下:
<cruisecontrol>
<project name="SMSSystem"> # 工程名
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/> # log信息
</listeners>
<bootstrappers>
<svnbootstrapper localworkingcopy="projects/${project.name}"/> #svn的地址
</bootstrappers>
<modificationset quietperiod="30">
<svn localworkingcopy="projects/${project.name}"/> #隔30秒查看SVN的修改情况
</modificationset>
<schedule interval="120"> # 隔120秒重新编译,但是SVN代码不变则不执行
<ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" target="make"/>
</schedule>
<log>
<merge dir="projects/${project.name}/target/test-results"/>
</log>
<publishers>
<onsuccess>
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}"/>
</onsuccess>
</publishers>
</project>
</cruisecontrol>
接着,我们要手动将SVN checkout一次(第一次必须要手动来checkout,以后就不用了)。
cd project #这个地方是放工程的地方
svn co http://192.168.0.2/SVN/SMSSystem
接着在SMSSystem文件夹下加入以下的build.xml(我们的开发是Linux + GCC)
<project name="SMSSystem" default="all">
<target name="all" depends="clean, make"/>
<target name="make">
<exec executable="make" failonerror="true" >
</exec>
</target>
<target name="clean">
<exec executable="make" failonerror="true" >
<arg value="clean"/>
</exec>
</target>
</project>
接着退到CC的主目录,执行./cruisecontrol.sh,CC服务就打开了,你可以通过web查看
http://192.168.0.3:8080/dashboard
几点说明:
1、所有的工程都要放在project这个文件夹下面
2、CC启动会去找config.xml ,启动后会通过ant命令去找每一个工程底下的build.xml
3、CC的安装不难,启动前在shell下键入javac , java , ant 都要保证成功,不能出现command not found
4、CC可以同时加入多个工程,只要保证每个工程底下有正确的build.xml,并且每个工程都配到config.xml里就可以了
相关文章推荐
- 使用SVN+CruiseControl+ANT实现持续集成之二----环境搭建和配置介绍
- 使用SVN+CruiseControl+ANT实现持续集成之二----环境搭建和配置介绍
- 使用CruiseControl+SVN+ANT实现持续集成之二环境搭建和配置介绍
- Jenkins+Maven+SVN快速搭建持续集成环境
- Jenkins+Maven+SVN快速搭建持续集成环境
- Hudson+Maven+SVN 搭建持续集成环境
- 使用CruiseControl+SVN+ANT实现持续集成之三
- (转)使用CruiseControl+SVN+ANT实现持续集成之三
- Android开发、测试持续集成环境Jenkins搭建
- 自动化持续集成编译 配置 CruiseControl.Net SVN
- CruiseControl.Net持续集成平台搭建总结
- Jenkins+Maven+SVN快速搭建持续集成环境
- Linux环境 搭建Jenkins+SVN+Maven持续集成环境
- Hudson+Maven+SVN 快速搭建持续集成环境
- Jenkins+Maven+SVN快速搭建持续集成环境(转)
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)
- 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境(一)
- Jenkins+Maven+SVN快速搭建持续集成环境(转)
- Jenkins+Maven+SVN+Nexus 搭建持续集成环境
- Jenkins+Maven+SVN快速搭建持续集成环境