`
yaozhiqiang109
  • 浏览: 117811 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

CruiseControl使用总结

阅读更多

CruiseControl:简称CC,持续集成工具,主要提供了基于版本管理工具(如SVN)感知变化或每天定时的持续集成,
并提供持续集成报告,通过Email、IM、RSS等等方式通知相关负责人。

使用CruiseControl的优点
持续集成最大的优点是可以避免传统模式在集成阶段的除虫会议(bug meetings)。
降低风险,尽早的发现bug,静态代码分析
自动化,自动编译、自动测试、自动部署、自动审查
增强项目的可见性,maven site,测试报告
可部署的软件
持续集成主张项目的开发人员频繁的将他们对源码的修改提交(check in)到一个单一的源码库,
并验证这些改变是否对项目带来了破坏。



主要包括三个组件:
1、Build Loop组件:主要负责根据外部的xml配置,定时、周期性的根据外部SCM的状态启动构建任务,
并将构建结果通过Email/IM/RSS等方式通知到相应的客户端
2、JSP的报告组件:提供了一个web页面供我们查看构建结果以及每次构建发布的工件
3、Dashboard组件:提供了一个可视化的界面,让我们可以清楚的看到各个项目的构建状态

CC倾向于通过源码变化来自动触发构建,但仍克定时触发构建,以达到nightly building的效果。

术语:
1、工作目录:是指启动CC的脚步目录。在Stand-alone情况下,就是文件cruisecontrol.bat所在的目录。
如果你把它部署到了应用服务器中,那一般就指bin目录了。
2、Log目录:就是CC存储所有构建项目日志信息的目录,默认值为工作目录下名为logs目录
3、Projects目录:就是CC存储所有构建项目源代码的目录,默认值为工作目录下名为projects目录

如果项目的log文件比较大,或者构建时使用内存较多,可以在cruisecontrol.sh中增加JAVA命令行参数,扩大JVM的内存,以免出现OutOfMemory错误:

CC_OPTS="-Xms128m -Xmx256m"

<?xml version="1.0" encoding="UTF-8"?>
<cruisecontrol> 
	<!--name必须和projects下面的项目名称一致 buildafterfailed表示构建失败后,在没有代码检入得情况下是否再构建-->
	<project name="jpetstore" buildafterfailed="false">
       <!--用于监听项目状态变化-->
		<listeners>
            <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
        </listeners>
		<!--项目构建之前的准备工作-->
        <bootstrappers>
			 <!-- 从源码控制系统更新本地文件: cvsbootstrappers、vssbootstrappers、svnbootstrapper -->
			 <svnbootstrapper localWorkingCopy="projects/${project.name}" />
        </bootstrappers>
		 <!-- 检查各个源码控制系统中是否发生变化;quietperiod: 单位为秒 设定等待的时间 -->
	     <!-- 第一次的取出工作为手动执行 -->
        <modificationset quietperiod="30">
			<svn localWorkingCopy="projects/${project.name}" />
        </modificationset>
		<!--构建的时间间隔 单位是秒-->
        <schedule interval="300">
			<!--<maven2 mvnhome="C:/Program Files/apache-maven-2.2.1" 
				pomfile="projects/${project.name}/pom.xml"   goal="-U clean test"    />-->
				<maven2 mvnhome="C:/Program Files/apache-maven-2.2.1" 
				pomfile="projects/${project.name}/pom.xml"   goal="clean package"    />
        </schedule>
		<!--指定日志的保存地点-->
        <log>
           <merge dir="projects/${project.name}/target/test-results"/>  
        </log>
		<!-- 在 build loop 结束之后运行,发布 build 的结果 -->
        <publishers>
            <onsuccess>
				<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/>
            </onsuccess>
			<htmlemail
buildresultsurl="http://localhost:8080/cruisecontrol/buildresults/jpetstore"
                mailhost="pop.corpease.net" 
                username="laughing.yao@xiu.com"
                password="123456"
                defaultsuffix="@xiu.com"
                returnname="CC log"
                returnaddress="laughing.yao@xiu.com"
                skipusers="true"
                charset="UTF-8"
                xsldir="webapps/cruisecontrol/xsl"
                css="webapps/cruisecontrol/css/cruisecontrol.css">
                <always address="laughing.yao@126.com" />   
                <success address="laughing.yao@126.com" />  
			
      </htmlemail>            </htmlemail>

        </publishers>

    </project>

</cruisecontrol>

 

持续集成目标:
自动编译-->自动构建-->自动检查-->自动部署-->自动测试-->自动补丁-->自动发布

持续集成策略:三种构建方式
1、实时构建
2、每日构建
3、手工构建

0
3
分享到:
评论

相关推荐

    cruisecontrol、ant、svn持续集成

    cruisecontrol、ant、svn持续集成 己两个多星期以来对持续集成的概念和应用有了一些了解。下面主要对自己配置持续集成的环境进行总结。(看上去简单,但是对我开始对持续集成都没什么了解的人来说确实费了不少周折)

    利用CruiseControl软件进行持续集成

    1.认识CruiseControl 2.CruiseControl的安装 3. CruiseControl的配置 4.总结

    如何用CruiseControl.Net来进行持续化集成

    本文的目的:本文总结了过去一年中使用CruiseControl.Net来对工作流程进行持续化集成的经验教训,详细地讲述安装,配置,使用CruiseControl.Net的具体步骤,希望通过阅读本文,能理解和掌握使用CruiseControl.Net的...

    Linux平台下CT机架软件系统自动化测试实现.pdf

    该方法使用CruiseControl工具来设置测试触发条件,运行测试脚本,实现测试参数传递、流程控制和结果自动输出。最后,文章讨论了自动化测试的优点和缺点,总结了自动化测试在软件开发中的重要性。 Linux平台下CT机架...

    Web性能测试方法及其应用说明书.doc

    WebLoad提供巡航控制器cruise control的功能,利用巡航控制器,可以预定义Web应用程序应该满足的性能指标,然后测试系统是否满足这些需求指标;cruise control能够自动把负载加到Web应用程序,并将在此负荷下能够访问...

    FinalBuilder Server 7.0.0.317 crack,完美破解

    finalbuilder对比teamcity,CruiseControl.NET等东西,他们简直是菜鸟。。。 1)支持自动获取源代码,根据work item获取源代码,TFS集成 2)支持多种语言,C,C++,JAVA,C#等语言,TFS,VSS,SVN等源代码管理环境 3)...

    企业持续集成成熟度模型简介

    (JeffreyFredrick目前是开源持续集成工具CruiseControl的开发和维护者之一)===========================================================当今软件...

    Pro .NET Best Practices .net最佳实践 英文版

    10.2.1 CruiseControl.NET 10.2.2 Jenkins 10.2.3 TeamCity 10.2.4 Team Foundation Server 10.3 CI生命周期 10.3.1 重新生成 10.3.2 单元测试 10.3.3 分析 10.3.4 打包 10.3.5 部署 10.3.6 稳定性测试 10.3.7 生成...

    《.NET最佳实践》.((美)Stephen Ritchie)

    10.2.1 CruiseControl.NET 174 10.2.2 Jenkins 175 10.2.3 TeamCity 175 10.2.4 Team Foundation Server 176 10.3 CI生命周期 176 10.3.1 重新生成 177 10.3.2 单元测试 182 10.3.3 分析 184 10.3.4 打包 ...

Global site tag (gtag.js) - Google Analytics