博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用CruiseControl搭建自己的持续集成环境
阅读量:5108 次
发布时间:2019-06-13

本文共 1627 字,大约阅读时间需要 5 分钟。

在敏捷开发过程中我们会实施很多优秀实践,比如站立式会议、结对编程、持续集成等等。本文主要讲解如何运用CruiseControl搭建你的持续集成环境。

一:CruiseControl介绍

     CruiseControl(有时我们简称CC)是使用java语言编写的一个持续集成工具,他有着良好的框架,所以你可以在他基础上二次开发成我们自己 定制的持续集成工具。CruiseControl集成了很多第插件,比如:源码控制、邮件通知、实时消息通知等等。而且他提供了一个web界面使我们更加 方便的查看构建项目的当前以及历史状态。虽然CruiseControl使用java语言编写,但他并不限制你只能构建JAVA项目,你可以通过ant等 脚本构建各种语言的持续集成环境。

    工具的整体架构如下图:

 

 

从上图可以看出,CC主要包括了三个组件:

    A、Build Loop组件:主要负责根据外部的xml配置,定时、周期性的根据外部SCM的状态启动构建任务,并将构建结果通过Email/IM/RSS等方式通知到相应的客户端。

    B、JSP的报告组件:提供了一个web页面供我们查看构建结果以及每次构建发布的工件。

    C、Dashboard组件:提供了一个可视化的界面,让我们可以清楚的看到各个项目的构建状态 。

工具的官方网站:  

 

二:CruiseControl持续集成环境的配置安装   

    第一步:

         A、从上面的官方网站下载最新的稳定版本,当前最新的稳定版本为2.8.2    

         B、下载JAVA安装包 

   第二步:解压下载的工具包(由于CC是绿色版的,所以解压即可不需安装),并在你的环境变量中增加两个环境变量    

        A、JAVA_HOME设置为你的JAVA安装目录

        B、设置ANT_HOME为CC解压目录下的apache-ant-1.7.0目录,并且将“你的下载目录/cruisecontrol-bin-2.8.2/apache-ant-1.7.0/bin”加入你的path路径中

             (这样我们就可以在命令行直接调试ant脚本) 

   第三步:直接运行CC解压目录下的cruisecontrol.bat即可

   第四步:在你的浏览器地址栏输入:http://localhost:8080/dashboard/tab/dashboard ,如果出现下面的界面表示安装成功

      

第三:如何搭建自己的构建项目

    第一步:熟悉CC的目录结构   

 

      在上面粉红色的方框中,我们大部分时间只需要配置一下文件即可:

     1、confile.xml文件    -------所有项目的信息配置,包含了你的SCM以及发布信息等等

     2、cruisecontrol.bat -------启动CC工具

     3、apache-ant-1.7.0文件夹  -----这里存放了ant工具所有内容,包括lib

     4、artifacts文件夹               -----存放了每次构建发布的工件,以项目进行区分

     5、etc文件夹                      -----存放了工具的配置,包括jetty容器、数据库连接配置等

     6、lib文件夹                       -----存放了所有CC依赖的lib库

     7、log文件夹                      -----存放了所有日志信息

     8、projects文件夹              ------存放了你的构建项目的描述信息,构建自己的项目需要在这里面配置

     9、webapps文件夹             ------存放了CC的WEB部署,如果你想定制自己的界面,就需要在这里配置,如上图的TestAnalusis的Tab就是我定制的一个页面 

    第二步:熟悉总的项目文件的配置config.xml

    第三步:熟悉每个项目的Build.xml的编译控制

    上面的第二步和第三步可以参加它的带有的帮助文件和工程实例connectfour,因为这里面的配置项,所以这里就不一一列举讲解。如果大家有什么疑问可以给我留言我们一起讨论。

 

转载于:https://www.cnblogs.com/yefengmeander/archive/2011/06/14/2888018.html

你可能感兴趣的文章
java格式及运算符
查看>>
Android相对布局
查看>>
spark on yarn
查看>>
2018.10.18课堂笔记HashMap之前
查看>>
Git学习日记(1)——什么是版本控制
查看>>
A Mathematical Introduction to Robotic Manipulation
查看>>
Changing the Output Path in your Web Applications is a bad idea
查看>>
isArray
查看>>
ssh框架出现Java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误
查看>>
BBS
查看>>
操作的系统的PV操作
查看>>
小凯的疑惑
查看>>
廖雪峰Java13网络编程-1Socket编程-1网络编程概念
查看>>
18 如何使用go来采集windows的基本硬件信息后发送到CMDB的服务器上
查看>>
高品质的网页设计: 实例与技巧
查看>>
2011年20大3D网站
查看>>
Less:优雅的写CSS代码
查看>>
回首博客 年满一周年,记录90个点滴瞬间
查看>>
PHP高效率写法(详解原因)
查看>>
[思路]青鸟快速开发框架的定位
查看>>