CruiseControl是CI服务器的老者,诞生已是多年,在许多方面,CruiseControl服务器已经成为持续集成实践的同义词。而现在,CruiseControl已发展成为一个家族式系统,包括CruiseControl.java、CruiseControl.net、CruiseControl.ruby等适应不同语言环境的实现,其强大的插件和扩展能力也是诸多同类系统无法比你的。而在这里,我只介绍该家族的本家CruiseControl.java,即CruiseControl。CruiseControl是一个不错的持续集成服务器,不过国内社区的普遍反应是:它的配置太麻烦,无从下手。从本篇文章开始,我将逐步介绍CruiseControl的环境搭建与配置,以及持续集成中的一些实践。我们将从最简单的使用方式(stand-alone)开始,以便您可以快速开始您的持续集成之旅,而不必面对“千奇百怪”的问题。
好!先让我们简单搭建个持续集成服务器再说吧
一、我使用的CruiseControl版本
- CruiseControl是一个java开源项目,我将以它最近的一个分支版本来介绍它的使用。CruiseControl最近发布的版本是V2.7.1。这个分支版本就是在V2.7.1基础之上。
- 这个分支版本包含一个Dashboard,可以方便地看到各项目的构建状态。
- 这个分支版本当然还支持多个Build Loop,你可以在多个机器上部署独立的Build Loop,从而建立你自己的Build Grid。
二、得到CruiseControl的分支版本
要得到这个分支版本,你可以使用subversion不用任何密码从CruiseControl的Repository中检出。命令如下:
svn checkout https://cruisecontrol.svn.sourceforge.net/svnroot/cruisecontrol/branches/cce/cruisecontrol/
三、构建CruiseControl
0. 你机器上至少要安装有JAVA 1.4,并在环境变量中设置有JAVA_HOME,并把java/bin加入到path中。CruiseControl自带了ANT,所以不用事先安装。
- 从源代码中构建CruiseControl
如果从源码中构建CruiseControl,要确保你的机器可以访问互联网。因为构建过程中要检查一些license。另外,最好有SVN 客户端软件,因为在构建时,它会用到javahl。
在刚刚checkout出来的CruiseControl目录下,有一个批处理文件,名为release.bat。运行这个批处理文件,你会在target目录下发现一个压缩文件,名这cruisecontrol-bin-2.7.2-dev.zip。将其解压到一个目录,我们这里解压到C盘根目录下。解压后,目录结构如下:
2. 直接使用已构建完成的CruiseControl
如果你不想做这一步,也可以在binaryrelease目录下发现解压后的文件,把它们拷贝到相应的目录下也可以。
四、运行CruiseControl
CruiseControl可以运行在多种应用服务器中,当然,它自己也捆绑了一个开源应用服务器,那就是Jetty 6。为了尽快建立我们的环境,我们这里暂时使用它自己捆绑的Jetty,快速开始我们的持续集成之旅。
直接运行CruiseControl目录下的CruiseControl.bat,它会自行启动Jetty6,当从Console中看到它启动完毕后,你就可以在浏览器中访问http://localhost:8080/dashboard,此时你会看到一个名为connectFour的示例项目在Dashboard上显示了。
(如果你足够快的话,你会发现Dashboard 上的小方块是从灰色变成深绿色的。为什么呢?我们以后再说。)
“绿色”表示该项目构建通过。如果要是有多个项目的话,应该看到多个小方块。
点击“Builds” Tab页,就到了 Builds 页。这一页会以列表的方式显示所有的项目。当前只有一个项目,所以在列表中只有一行,如下图所示:
在该页面上点击某个项目时,会打开Build Detail页,显示该项目最近一次Build的信息。页面右侧是该项目所有历史构建信息。你会发现,这时connectFour项目有两个构建历史版本,一个是刚刚构建完成的,另一个是两年前的构建。这些信息是来自于CruiseControl对该项目的日志文件。此时,点击这两个构建结果中的任何一个,都会打开该次构建的Build Detail页面,显示相关的构建历史信息。如下图所示:
我们将在下一篇文章中简要介绍CruiseControl的配置文件,为您加入自己的构建项目做准备。
相关推荐
6. **向CruiseControl中加入新项目**:"CruiseControl step by step(3)"部分可能详细介绍了如何添加新的项目到CruiseControl服务器,包括项目配置文件的修改和项目构建规则的设定。 7. **了解CruiseControl的配置...
CruiseControl是一款持续集成工具,它能够自动化地构建、测试和部署软件项目,极大地提高了开发效率和产品质量。在本文中,我们将深入探讨如何配置CruiseControl以实现定时运行,确保项目始终保持最新状态。 首先,...
CruiseControl是一款持续集成工具,它能够自动化地执行软件项目的构建、测试和部署流程,以确保代码的质量和项目的稳定性。本篇文章将详细介绍CruiseControl的基本概念、安装过程、配置方法以及一个简单的使用示例。...
1. **安装 Java SDK**:CruiseControl 需要 Java 运行环境,因此首先需要安装 Java SDK 并设置 `JAVA_HOME` 环境变量。 2. **下载 CruiseControl**:选择合适的版本进行下载,例如 2.8.3 版本可从 ...
1. **Source Control**:CruiseControl.rb支持多种版本控制系统,如Git、Subversion(SVN)、Mercurial等,用于获取最新的代码变更。 2. **Builder**:构建器负责执行编译、打包等任务。它可以是Rake、Ant或其他...
CruiseControl 是一个开源的持续集成工具,用于自动化软件构建、测试和部署的过程。它通过监控版本控制系统中的变更,自动触发构建任务,及时发现并解决代码集成中的问题,从而提高开发团队的效率和软件质量。本...
标题与描述概述的知识点主要涉及了使用CruiseControl与Maven2进行持续集成的配置流程。这是一项在软件开发过程中非常关键的技术实践,它能够自动检测代码库中的更新,并自动执行构建、测试以及部署等任务,从而确保...
### cruisecontrol、ant、svn持续集成 #### 一、概述 持续集成(Continuous Integration, CI)是一种软件开发实践,旨在通过频繁地将代码合并到共享的主分支,并自动化地进行构建和测试,来提高软件质量和减少集成...
主题:持续集成及CruiseControl技术交流 在提升软件质量、降低研发风险、拒绝浪费方面,处于敏捷实践领域的持续集成(Continuous Integration,CI)起到重要作用。持续集成能够解决研发工作中的80%任务(日常),...
CruiseControl.NET 是 .NET 平台下的持续集成工具,CruiseControl (Java) 的 .NET 移植版本。CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。Cruise...
CruiseControl-2.8.4.exe
cruisecontrol简介
1.认识CruiseControl CruiseControl是一种持续集成框架,提供了邮件通知、ANT和各种源码控制工具的插件,并提供了Web接口,用于查看当前和以前的build结果。CruiseControl系统的架构图中,我们可以看到,Cruise...
### CruiseControl.net 配置详解 #### 一、CruiseControl.net简介 CruiseControl.net是一种流行的持续集成(CI)工具,它可以帮助软件团队自动构建、测试和部署代码,从而提高开发效率和软件质量。本篇文章将围绕...
CruiseControl.NET-1.4.4-Setup.exe
CruiseControl.NET-CCTray-1.8.4.0-Setup.exe
CruiseControl.NET-CCTray-1.5.6804.1-Setup
**CruiseControl 使用总结** CruiseControl 是一个开源的持续集成工具,主要用于自动化软件构建、测试和部署过程。它的核心理念是通过频繁地构建项目,及时发现并解决代码中的问题,从而提高软件开发效率和质量。这...
CruiseControl是一款持续集成工具,它能够自动化软件构建、测试和发布的过程,是开发者进行敏捷开发和持续集成的重要工具。本教程将详细讲解CruiseControl的学习与实践。 **第一章 CruiseControl实践** 1.1 Cruise...