`
yaozhiqiang109
  • 浏览: 119758 次
  • 性别: 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配置定时运行

    总结,配置CruiseControl定时运行涉及以下几个关键步骤:安装CruiseControl、编写`cruisecontrol.xml`配置文件、设定构建触发器、定义构建步骤、配置监控与通知,最后启动或重启CruiseControl服务。通过这种方式,你...

    cruisecontrol配置文件.rar

    总结来说,"cruisecontrol配置文件.rar" 包含了CruiseControl运行所需的关键组件:`main.jsp` 提供用户友好的Web界面,`build.xml` 定义了构建流程,而`config.xml` 是整个系统的灵魂,控制着CruiseControl的行为。...

    持续集成之CruiseControl.rb

    **持续集成之CruiseControl.rb**...总结来说,CruiseControl.rb是一款针对Ruby开发的强大持续集成工具,它通过自动化构建和测试过程,提高了团队协作效率和软件质量。对于Ruby开发者来说,它是实现持续集成的得力助手。

    CruiseControl简介及使用举例

    **CruiseControl简介** CruiseControl是一款开源的持续集成工具,最初由Thought...通过阅读提供的文档《CruiseControl简介及使用举例.doc》,你可以更深入地掌握CruiseControl的配置、使用以及在实际项目中的应用。

    利用CruiseControl软件进行持续集成

    下面是CruiseControl的知识点总结: 1.认识CruiseControl CruiseControl是一种持续集成框架,提供了邮件通知、ANT和各种源码控制工具的插件,并提供了Web接口,用于查看当前和以前的build结果。CruiseControl系统...

    CruiseControl笔记

    为了更好地理解如何使用CruiseControl.net支持多个工程,我们通过两个具体的示例进行讲解——`BuildTest.sln`和`TestCCNet.sln`。 #### 三、配置ccnet项目 下面以`BuildTest`项目为例,介绍如何配置CruiseControl...

    CruiseControl学习教程.pdf

    在学习和使用CruiseControl之前,你需要准备以下基础工具: - 版本控制系统:如Subversion(Svn),用于管理项目源代码。 - 构建工具:例如Ant或Maven,用于编译代码和执行构建任务。 - 服务器环境:CruiseControl...

    Cruisecontrol

    为了更好地理解CruiseControl的使用方法,我们可以参考以下具体案例: **案例背景**:某企业需要在一个分布式的环境中进行自动化的构建和测试。 **解决方案**: - **部署CruiseControl Master**:在一台服务器上...

    CruiseControl入门

    正确地配置和使用CruiseControl,可以帮助团队实现持续、快速的反馈循环,及时发现并解决问题,确保项目的稳定和健康发展。通过学习和实践CruiseControl,开发者可以更好地掌握持续集成的理念和技术,从而提升整个...

    CruiseControl.net

    总结来说,CruiseControl.net是一个强大的持续集成工具,通过自动化开发流程,提升了开发团队的工作效率和代码质量。理解和熟练掌握CruiseControl.net的配置和使用,对于任何软件开发团队都是至关重要的。

    电子邮件 CruiseControl 配置

    总结来说,CruiseControl的电子邮件配置涉及`config.xml`文件中的`&lt;notification&gt;`和`&lt;email&gt;`标签,通过定制这些设置,我们可以实现构建状态的通知,确保团队成员始终保持对项目进度的了解。正确配置邮件通知是持续...

    subclipse,maven,subversion,cruiseControl环境配置及使用方法

    ### Subclipse, Maven, Subversion, CruiseControl环境配置及使用详解 #### 一、环境配置的重要性与持续集成的优势 在软件开发过程中,采用Eclipse、Maven、Subversion(SVN)和CruiseControl构建的环境,能够显著...

    CruiseControl+SVN+Maven+Tomcat持续集成环境搭建

    【CruiseControl 持续集成环境搭建】 CruiseControl 是一款开源的持续集成工具,它的主要任务是在软件开发过程中,通过监控版本控制系统(如 SVN)的变化或者按照预设时间进行定期构建,以确保项目的持续集成。...

    持续集成及CruiseControl技术交流(IBM)(演讲嘉宾:罗时飞).pdf

    ### 持续集成及CruiseControl技术交流关键知识点 #### 一、持续集成与CruiseControl概述 **持续集成**是一种软件开发实践,旨在频繁地(一天多次)将代码集成到共享的主干中,每次集成都通过自动化构建(包括编译...

Global site tag (gtag.js) - Google Analytics