`

CruiseControl step by step(3)

 
阅读更多

一、 准备工作(请确认一下)

1、你的项目代码放在Google Code上面(Google Code用的是SVN ),你的项目名称是yourprojectname,项目的源文件就放在trunk目录下。那么,其svn update的链接如下:http://yourprojectname.googlecode.com/svn/trunk/。CruiseControl只会更新文件,不会修改源代码,所以匿名检出就可以了。

2、你的项目是一个JAVA项目,用ANT进行构建,构建文件名为build.xml,放在项目的根目录上,默认的ant task名为all。确保文件中其中所有路径都是相对于项目根目录的,将其Copy到任何目录下,ant all都可以正确运行。(我们的主要目的是建立环境,使其在今后的开发工作中可以发挥作用,而不是要发现我们构建脚本中错误。)

3、你的CruiseControl工作目录是C:/CruiseControl,方便起见,我们以下将用${CC_HOME}代替。

4、你的logs目录是${CC_HOME}/logs。如果你没有独自改动配置的话,它的位置就如前所述。

5、你的projects目录是${CC_HOME}/projects。如果你没有独自改动配置的话,它的位置就如前所述。

6、你的artifacts目录是${CC_HOME}/artifacts。如果你没有独自改动配置的话,它的位置就如前所述。

 

二、加入项目

1、手工检出文件:

确保将你的项目代码检出到${CC_HOME}/projects/yourprojectname目录下,即在该目录就是你项目的根目录,可以找到名为build.xml文件。

2、修改配置文件(添加你的项目)

将下面的代码段加入到config.xml文件中,位于<CruiseControl>节点下。

 

    <project name="yourprojectname"> --这里一定要与你的projects目录下的项目名相同

        
<listeners>
            
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
        
</listeners>

        
<bootstrappers>
            
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
        
</bootstrappers>

        
<modificationset quietperiod="30">
            
<svn localWorkingCopy="projects/${project.name}"/>
        
</modificationset>

        
<schedule interval="300">            <ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/>
        
</schedule>

        
<log>
            
<merge dir="projects/${project.name}/target/test-results"/>
             <!-- 在上面一句,一定要确保构建失败后可以找到这个dir,如果没有,删除这个元素好了-->
        </log>

        
<publishers>
            
<onsuccess>
                
<artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/>
                <!-- 在上面一句,一定要确保你打包出来的文件名是yourprojectname.jar -->
            </onsuccess>
        
</publishers>

    
</project>

 

 

最终的文件如下:

 

<cruisecontrol>
    
<project name="connectfour">

        
<listeners>
            
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
        
</listeners>

        
<bootstrappers>
            
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
        
</bootstrappers>

        
<modificationset quietperiod="30">
            
<svn localWorkingCopy="projects/${project.name}"/>
        
</modificationset>

        
<schedule interval="300">
            
<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}.jar"/>
            
</onsuccess>
        
</publishers>

    
</project>

    
<project name="yourprojectname">

        
<listeners>
            
<currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
        
</listeners>

        
<bootstrappers>
            
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
        
</bootstrappers>

        
<modificationset quietperiod="30">
            
<svn localWorkingCopy="projects/${project.name}"/>
        
</modificationset>

        
<schedule interval="300">
            
<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}.jar"/>
            
</onsuccess>
        
</publishers>

    
</project>

</cruisecontrol>

 

 

三、看一下结果

(1) CruiseControl会自动更新这个配置文件,加载时间一般是在任何一个项目需要检查是否有更新时。

(2) 你会看到这个项目在Dashboard上首先是灰色的方块,因为这个项目还从来没有在CruiseControl上构建过,没有任何历史信息,我们称该项目为"inactive"。

(3) 过一会儿,你会看到一个环形动态图标,表示它在构建中(执行build.xml脚本)。

(4) 当环形动态图标消失时,你会看到它变成红色(如果构建失败的话)或绿色(如果构建成功的话)。

我新加的项目名是vcdstore,现在我的dashboard上有两个项目了。


小贴士:

(1) 目前CruiseControl还不支持首次自动检出代码,所以你要先把项目代码手工检出到本地。

(2) 如果你的SVN使用https方式更新代码,你一定要在命令行方式检出代码,并选择永久接受证书。

(3) CruiseControl这个分支版本不支持在UI上增加项目。

(4) 如果你在config.xml文件中把你的项目删除,却不删除它的日志的话,你在Dashboard上还是可以看到这个项目,此时它被标记为"Discontinued",表示你可以看到它的历史信息,但CruiseControl不会再构建它了。

分享到:
评论

相关推荐

    CruiseControl使用指南.rar

    6. **向CruiseControl中加入新项目**:"CruiseControl step by step(3)"部分可能详细介绍了如何添加新的项目到CruiseControl服务器,包括项目配置文件的修改和项目构建规则的设定。 7. **了解CruiseControl的配置...

    cruisecontrol配置定时运行

    CruiseControl是一款持续集成工具,它能够自动化地构建、测试和部署软件项目,极大地提高了开发效率和产品质量。在本文中,我们将深入探讨如何配置CruiseControl以实现定时运行,确保项目始终保持最新状态。 首先,...

    CruiseControl简介及使用举例

    CruiseControl是一款持续集成工具,它能够自动化地执行软件项目的构建、测试和部署流程,以确保代码的质量和项目的稳定性。本篇文章将详细介绍CruiseControl的基本概念、安装过程、配置方法以及一个简单的使用示例。...

    [CruiseControl]binary安装和启动

    3. **启动服务**:使用 Windows 系统时,可以通过运行 `cruisecontrol.bat` 文件来启动服务;对于 Linux 或 macOS 用户,则需运行 `cruisecontrol.sh` 文件。 4. **访问 Web 控制台**:通过浏览器访问 ...

    持续集成之CruiseControl.rb

    3. **启动**:使用`cruise control start`命令启动服务,`cruise control stop`则停止服务。 ### 四、CruiseControl.rb的工作流程 1. **检查源码仓库**:CruiseControl.rb定期检查源码仓库是否有新的提交。 2. **...

    cruisecontrol配置文件.rar

    CruiseControl 是一个开源的持续集成工具,用于自动化软件构建、测试和部署的过程。它通过监控版本控制系统中的变更,自动触发构建任务,及时发现并解决代码集成中的问题,从而提高开发团队的效率和软件质量。本...

    cruisecontrol+maven2配置

    标题与描述概述的知识点主要涉及了使用CruiseControl与Maven2进行持续集成的配置流程。这是一项在软件开发过程中非常关键的技术实践,它能够自动检测代码库中的更新,并自动执行构建、测试以及部署等任务,从而确保...

    cruisecontrol、ant、svn持续集成

    ### cruisecontrol、ant、svn持续集成 #### 一、概述 持续集成(Continuous Integration, CI)是一种软件开发实践,旨在通过频繁地将代码合并到共享的主分支,并自动化地进行构建和测试,来提高软件质量和减少集成...

    持续集成及CruiseControl技术交流

    主题:持续集成及CruiseControl技术交流 在提升软件质量、降低研发风险、拒绝浪费方面,处于敏捷实践领域的持续集成(Continuous Integration,CI)起到重要作用。持续集成能够解决研发工作中的80%任务(日常),...

    CruiseControl.NET

    CruiseControl.NET 是 .NET 平台下的持续集成工具,CruiseControl (Java) 的 .NET 移植版本。CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。Cruise...

    CruiseControl-2.8.4.exe

    CruiseControl-2.8.4.exe

    cruisecontrol简介

    cruisecontrol简介

    利用CruiseControl软件进行持续集成

    3.CruiseControl的配置 当CruiseControl服务器启动时,会自动检测配置信息中的任务信息,并对其进行校验和初始化,之后所有的工作,都是依据该配置信息进行的。CruiseControl的配置使用了其安装目录下的config.xml...

    CruiseControl笔记

    ### CruiseControl.net 配置详解 #### 一、CruiseControl.net简介 CruiseControl.net是一种流行的持续集成(CI)工具,它可以帮助软件团队自动构建、测试和部署代码,从而提高开发效率和软件质量。本篇文章将围绕...

    CruiseControl.NET-1.4.4-Setup.exe

    CruiseControl.NET-1.4.4-Setup.exe

    CruiseControl.NET-CCTray-1.8.4.0

    CruiseControl.NET-CCTray-1.8.4.0-Setup.exe

    CruiseControl使用总结

    **CruiseControl 使用总结** CruiseControl 是一个开源的持续集成工具,主要用于自动化软件构建、测试和部署过程。它的核心理念是通过频繁地构建项目,及时发现并解决代码中的问题,从而提高软件开发效率和质量。这...

    CruiseControl学习教程.pdf

    CruiseControl是一款持续集成工具,它能够自动化软件构建、测试和发布的过程,是开发者进行敏捷开发和持续集成的重要工具。本教程将详细讲解CruiseControl的学习与实践。 **第一章 CruiseControl实践** 1.1 Cruise...

Global site tag (gtag.js) - Google Analytics