做PM真的不容易!
经过三天的配置,终于把cruisecontrol 配置好了,其实要说配置好,第一天装上就可以用了,因为cc里面本来就有例子,可实现java+svn+junit的持续集成。但,我手上的项目是C++的,用的是cppunit,没办法,只得仔细看配置文档,上网查教程。也许你会问,为什么不用CCNET,CCNET本身就支持C++ CPPUNIT,原因很简单,其实我就是想挑战一下而已,呵呵!因为我相信,CC做了这么多年,不会是这么差劲,肯定有办法让他支持其它语言。
好了,闲话不多说,我一向写BLOG都是直奔主题的,这次说了么多,实在。。。。。。。。。
第一。下载CC cpptask.jar ant-contrib-1.0b3.jar就只需这几个东东哦。cpptask.jar也许你下不到,没关系,把压缩包下下来,然后用ANT编译一下,就会有cpptask.jar了。
第二。把cpptask.jar ant-contrib-1.0b3.jar 放到 cc里面的ant/lib目录下。
第三。cruisecontrol.bat里面加入
set EXTLIBDIR=%ANT_HOME%\lib
%EXTLIBDIR%\ant-contrib-0.6.jar;%EXTLIBDIR%\cpptasks.jar;
最后加入即可。
第四。下班了,明天再写!
第五。我又来上班啦,继续写。config.xml配置如下,和java项目的配置差不多。
<project name="test">
<listeners>
</listeners>
<bootstrappers>
<antbootstrapper anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" />
</bootstrappers>
<modificationset quietperiod="30">
<filesystem folder="projects/${project.name}" />
</modificationset>
<schedule interval="30">
<ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" />
</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}.exe"/>
</onsuccess>
</publishers>
</project>
第六。配置C++编译环境。在VC下有个
@set PATH=D:\Program Files\Microsoft Visual Studio 8\Common7\IDE;D:\Program Files\Microsoft Visual Studio 8\VC\BIN;D:\Program Files\Microsoft Visual Studio 8\Common7\Tools;D:\Program Files\Microsoft Visual Studio 8\Common7\Tools\bin;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin;D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;D:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;%PATH%
@set INCLUDE=D:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;D:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include;D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include;%INCLUDE%
@set LIB=D:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB;D:\Program Files\Microsoft Visual Studio 8\VC\LIB;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib;D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;%LIB%
@set LIBPATH=c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;D:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB
把它加进环境变量里面去,当然你也可通过脚本的方式调用。
第七。在test项目里面加入build.xml
<project name="test" default="compile" xmlns:cpptasks="antlib:net.sf.antcontrib.cpptasks">
<target name="compile">
<exec executable= "cmd.exe">
<arg line= "/c 'D:/Program Files/CruiseControl/projects/test/test.bat'"/>
</exec>
</target>
</project>
第八。test.bat如下:
svn update
devenv test.sln /rebuild
cd debug
test.exe
说明一下,为什么要svn update,是因为,cc部署在服务器上,而程序员是从自己的PC上提交到SVN服务器,提交上去之后,并不能马上自动构建,而需要update到服务器上,然后从服务器的checkout目录构建。
第九。如果你发现CC并不自动构建你配置的项目,那么先看看CC的服务器有没有报什么错,我遇到一个问题就是,在CC第一次去构建项目时,就已经报错,所以CC怎么也不会显示已经构建过项目。以上的做法,已经能让CC编译C++了,但,还看不到想要的结果,CC显示的结果是从LOGS里面去读取出来的。因此在项目里面的CPPUNIT要求要把日志输出到CC/LOGS/TEST目录下去,还有,CC会自动读取最新时间的日志,所以把CPPUNIT输出的日志名字搞个很久以后的时间,这样就没有问题了,哈哈!
总结一下,我配置好这个东东大概花了三天的时间,很是想吐血,网上没有什么针对C++ CPPUNIT的文档,官网上也找不到,其实CC++编译什么语言没关系,它做的事就是检测SVN提交,然后调用ANT去编译,至于怎么编译是ANT的事,所以其实要做是让ANT能编译你的东东,然后把日志输出到logs/test目录下面去。
分享到:
相关推荐
cruisecontrol、ant、svn持续集成 己两个多星期以来对持续集成的概念和应用有了一些了解。下面主要对自己配置持续集成的环境进行总结。(看上去简单,但是对我开始对持续集成都没什么了解的人来说确实费了不少周折)
主题:持续集成及CruiseControl技术交流 在提升软件质量、降低研发风险、拒绝浪费方面,处于敏捷实践领域的持续集成(Continuous Integration,CI)起到重要作用。持续集成能够解决研发工作中的80%任务(日常),...
cruisecontrol.war 文件,你可以直接将这个文件 COPY 到你的%TOMCAT_HOME%\webapps 目录下,不 过这种方式通常都会出错,前 面我们讲过CC的WEB组件要访问我们的项目build 的状态文件,而下载的 CC2.2 里面自带的 ...
详细的讲述了基于CruiseControl+SVN+Maven+Tomcat持续集成环境的搭建,以及在搭建过程中遇到的问题。
SVN+cruisecontrol 搭建持续集成开发环境
cruisecontrol+maven2配置做持续集成
CruiseControl.NET 是 .NET 平台下的持续集成工具,CruiseControl (Java) 的 .NET 移植版本。CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。Cruise...
CruiseControl是CI服务器的老者,诞生已是多年,在许多方面,CruiseControl服务器已经成为持续集成实践的同义词。而现在,CruiseControl已发展成为一个家族式系统,包括CruiseControl.java、CruiseControl.net、...
cruisecontrol配置定时运行
CruiseControl简介及使用举例
1.认识CruiseControl 2.CruiseControl的安装 3. CruiseControl的配置 4.总结
持续集成配置 持续集成环境:Maven2 + Subversion + CruiseControl CC原理 以及一些样例
cruisecontrol配置文件,很实用
CruiseControl-2.8.4.exe
[CruiseControl]binary安装和启动
基于 CruiseControl 和 Rational 统一变更管理实现的软件开发中的自动化持续构建.mht
cruisecontrol简介
CruiseControl.NET-CCTray-1.8.4.0-Setup.exe
CruiseControl.NET-1.4.4-Setup.exe
CruiseControl笔记,详细介绍了CruiseControl。net的配置,希望对大家有所帮助