快速上手Cruisecontrol

2023-11-04

1        Cruisecontrol的概述

 

    CruiseControl是一种持续集成过程的框架,包括了邮件通知,ant和各种源码控制工具的插件。并提供web接口,用于查看当前和以前的build的结果。

 

2       Cruisecontrol的安装

2.1       下载CruiseControl
CruiseControl
目前提供的是源码,需要我们手工进行创建。网址:http://prdownloads.sourceforge.net/cruisecontrol/cruisecontrol-2.2.zip?download

 

2.2       创建安装目录

 

CruiseControl源码拷贝到特定目录该目录为INSTALL_DIR,该目录下有三个子目录docsmainreporting(注意:在main/docs/helloworld下有一个例子,我 们可以参考。)

 

2.3       设置环境变量

 

INSTALL_DIR/main/bin添加到系统的环境变量PATH中去。

 

2.4       创建工作目录

 

创建工作目录为D:/CC-WORKSPACE,下面称之为WORK_DIR

 

WORK_DIR/logs          CCbuild loop过程中产生日志所在目录
WORK_DIR/artifacts     CC
build loop过程中产生需要保存的一些

 

                    文件所在目录          

 

这步不是官方文挡要求的,但构建良好的目录结构对于开发和配置都非常重要。

 

3       Cruisecontrol的配置

3.1   reporting部分的配置
reporting部分的配置分三个步骤,修改jsp,创建override.properties,打包reporting部分文件并在weblogic上部署。

 

3.1.1   修改jsp文件

 

修改INSTALL_DIR/reporting/jsp/buildresults.jsp文件,将

 

<%@ taglib uri="/WEB-INF/cruisecontrol-jsp11.tld" prefix="cruisecontrol"%>

 

修改为

 

<%@ taglib uri="/WEB-INF/cruisecontrol-jsp12.tld" prefix="cruisecontrol"%>

 

3.1.2   创建override.properties

 

INSTALL_DIR/reporting/jsp 目录下创建override.properties文件,

 

内容如下:

 

user.log.dir=D://CC-WORKSPACE//logs

 

user.build.status.file=status.txt

 

cruise.build.artifacts.dir=D://CC-WORKSPACE//artifacts

 

3.1.3   打包web文件

 

执行INSTALL_DIR/reporting/jsp目录下的build.bat文件,执行成功后在dist目录下找到cruisecontrol.war文件,并将该文件部署到weblogic上,Weblogic部署部分我就不写了。

 

 

 

3.2   Mian部分配置

 

Mian部分配置只有一步,就是创建config.xml文件。

 

在工作目录(work_dir)下创建两个文件congfig.xmlstartcc.bat文件,config.xml文件是必须的,startcc文件是可选,因为startcc.bat纯粹是为了启动cc方便而创建的文件。

 

Startcc.bat文件内容如下:

 

cruisecontrol -port 8000

 

很短,但使用起来很方便,双击一下就启动cc 了。;-)

 

config.xml是由cc规定一些xml标签组成,我对一些常用的标签说明一下,具体还要去看cc提供的官方文档INSTALL_DIR/doc)。

 

l        <project/> 定义一个项目

 

l        <bootstrappers>

 

     <currentbuildstatusbootstrapper file="logs/first/status.txt" />

 

</bootstrappers>

 

定义build状态的日志文件。

 

l        <modificationset requiremodification="false"  quietperiod="60" >

 

      <vss ssdir="D:/vss/win32"             //注意:ssdir中不能有空格

 

         login="fengtianhao,fengtianhao"     //用户明,密码

 

         vsspath="/devtest"                //项目路径

 

         serverPath="D:/Program Files/vss"  //就是包含srcsafe.ini的目录

 

         dateformat="yy-MM-dd"         //vss的日期格式

 

         timeformat="HH:mm"           //vss的时间格式

 

         />

 

           </modificationset>

 

           检查vss文件系统是否有变化,如果有,则在web页面显示变化过的文件名。

 

l        <schedule interval="60" >

 

定义build时间间隔为60

 

<ant buildfile="build.xml" antscript="D:/ant/bin/ant.bat" target="deploy.app" time="1916"  antworkingdir="D:/new97_prj/NEW97_PRJ" uselogger="false">

 

      <jvmarg arg="-server" />

 

      <jvmarg arg="-Xms64m" />

 

      <jvmarg arg="-Xmx256m" />

 

</ant>

 

指定ant 的相关信息。buildfile定义build所需要的build.xml文件,antscript指定ant的启动脚本,antworkingdir指定ant的工作 target指定本次的build的目标,time指定build目标的运行时间(time也可以换成multiple,两者只能取其一)。<jvmarg>指定cc运行时的最大和最小内存。

 

      </schedule>

 

l        <log dir="logs/first">

 

       <merge dir="jsp/target/testresults"/>

 

    </log>

 

   log标签的dir属性指定日志目录。merge标签的dir属性指定需要被合并文件的路径,指定路径下的文件将会与日志文件合并,一般需要合并的文件是测试结果文件,这需要注意的地方是指定路径下的文件都要被合并到日志文件中,也就是说,为了不影响cc的日志文件的准确性,在生成每次的测试结果之前需要先把上次的测试结果删除。

 

l        <publishers>

 

       <artifactspublisher dest="artifacts/first" dir="jsp/target/testresults"/>

 

      </publishers>

 

  publishers的功能主要是发布build结果,例如邮件通知等,我们主要用到的功能是artifactspublisher所定义的功能,也就是ccbuild过程中产生的文件发布。在merge标签中我们已经知道,测试日志是ccbuild过程中产生的文件,而且我们每次我们都要删除上次的测试结果,这里cc提供了一种机制让你保存测试结果,就是利用artifactspublisher标签。

 

  Dest 定义目标目录, dir 定义文件存储的起始目录。所有的文件会被 cc dir 目录 copy dest 目录。被 copy dest 目录的文件会放在以当前时间命名的文件夹中。这里 dir 定义的是测试日志文件的所在目录。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速上手Cruisecontrol 的相关文章

随机推荐

  • websocket校验token:使用threadlocal存放和获取当前登录用户

    都知道threadlocal可以用于线程之间的变量隔离 在登录时中它可以放入当前用户 之后再用于获取当前登录用户 下面是一个使用实例 用户实体类 jpa框架 Data EqualsAndHashCode callSuper false Ta
  • socket套接字——UDP协议

    目录 一 预备知识 1 端口号 1 网络通信的目的 2 认识端口号 3 网络通信的本质 4 端口号的作用 2 认识TCP和UDP协议 3 网络字节序 1 各处数据的大小端 2 字节序转换接口 二 socket套接字 1 socket接口 1
  • EasyPoi实现excel文件导入导出

    EasyPoi学习实践 1 简介 easypoi功能如同名字easy 主打的功能就是容易 让一个没见接触过poi的人员 就可以方便的写出Excel导出 Excel模板导出 Excel导入 Word模板导出 通过简单的注解和模板 语言 熟悉的
  • qt连接oracle

    qt连接oracle 作者 bjoern 来源 CSDN 版权声明 本文为博主原创文章 未经博主允许不得转载 声明 qt编译的位数版本和数据库oracle的版本是密切相关的 如果你的电脑是64位的 但是qt装了默认32位的 那么你的orac
  • Java性能监控和故障诊断可视化工具之jmc

    前面的文章中我们介绍了jvisualvm 本篇文章我们来介绍下目前为止功能最为强大的可视化工具jmc jmc Java Mission Control 是jdk1 7开始引入的JVM监控工具 jmc可视化监控工具主要包含两大块内容 1 JM
  • 以transformAssociateToMap函数为例,分析LeGO-LOAM的坐标系统

    文章目录 LeGO LOAM采用的坐标轴体系 transformAssociateToMap函数剖析 公式推导 LeGO LOAM坐标变换解析 LeGO LOAM采用的坐标轴体系 LeGO LOAM的旋转顺序是固定轴ZXY而LeGO LOA
  • python文字转语音

    你觉得将文字转成语音需要写多少行代码才能完成 我用了7行 你呢 coding utf 8 import sys reload sys sys setdefaultencoding utf 8 import pyttsx engine pyt
  • STM32 SPI对存储芯片发送写是能命令后一直忙等待

    我采用CUBE配置的SPI外设 对NSS引脚选择了硬件输出 这种方式对读取命令没有影响 但是对写命令有 当我发送写是能命令后 读取状态寄存器的值一直都是忙 我猜测这可能是硬件控制NSS引脚后 对于HAL SPI Transmit等命令 内部
  • Github+Typora - - 我理想中的markdown云笔记神器

    这篇文章记录我如何解决市面上markdown笔记软件的弊端 扬长避短 为喜爱markdown软件的朋友出一份力 首先 我们先看下这篇文章 介绍了我们当下markdown软件多多少少有些不完美的状况 让我们虽然不喜欢 但也只可 欲罢不能 的尴
  • 使用python在wordpress博客网站添加新文章示例

    Wodrepress是最近很火的一个博客平台 利用它可以快速搭建各种网站 下面我是利用xmlrpc编程接口在wordpress添加文章的示例代码 import datetime xmlrpclib wp url http www examp
  • Camera和Image sensor技术基础笔记(5) -- HDR相关技术

    动态范围 Dynamic Range 动态范围最早是信号系统的概念 一种信号系统的动态范围定义为 最大的信号不失真的电平和噪声电平的差 在实际场景中 多用分贝 dB 为单位来衡量一个信号系统的动态范围 以上说法可能有些抽象 来看两个例子 1
  • ggplot2读书笔记2:ggplot()的基本用法以及如何绘制几何对象

    Getting Started with ggplot2 ggplot 基本用法 由ggplot2所制得图形有三个重要的组成部分 1 数据 2 数据和视觉变量属性之间的映射 aesthetic mappings 3 呈现数据结果的图层 一般
  • JS中的prototype

    JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点 1 原型法设计模式 在 Net中可以使用clone 来实现原型法 原型法的主要思想是 现在有1个类A 我想要创建一个类B 这个类是以A为原型的 并且能进行扩展
  • 绝地救生error_30种面向前端开发人员的救生工具

    绝地救生error As the functionalities of web apps keep getting ever more sophisticated and complex web developers need flexib
  • 【2】数据湖架构中 Iceberg 的核心特性

    在业界的数据湖方案中有 Hudi Iceberg 和 Delta 三个关键组件可供选择 一 Iceberg 是什么 Iceberg 官网中是这样定义的 Apache Iceberg is an open table format for h
  • JS封装计算1~100之间所有整数的总和与平均值

    function getSum var sum 0 for i 0 i lt 100 i sum i console log 1 100所有数和为 sum console log 1 100所有数和的平均值为 sum 100 getSum
  • Intellij idea 导入 jdbc

    第一步 去官网https dev mysql com downloads connector j 下载驱动程序 第二步 解压压缩包 记住路径 第三步 打开你的idea工程 打开Project Structure Modules gt gt
  • RabbitMQ - 死信、TTL原理、延迟队列安装和配置

    目录 一 死信交换机 1 1 什么是死信交换机 1 2 TTL 1 2 1 什么是 TTL 1 2 2 通过 TTL 模拟触发死信 二 延迟队列 2 1 什么是延迟队列 2 2 配置延迟队列插件 2 2 1 延迟队列配置 a 下载镜像 b
  • pyhive报错Could not start SASL: b‘Error in sasl_client_start (-4) SASL(-4)

    python3连接hive 1 安装对应依赖 2 连接hive 3 常见报错 1 安装对应依赖 pip install sasl pip install thrift pip install thrift sasl pip install
  • 快速上手Cruisecontrol

    1 Cruisecontrol的概述 CruiseControl是一种持续集成过程的框架 包括了邮件通知 ant和各种源码控制工具的插件 并提供web接口 用于查看当前和以前的build的结果 2 Cruisecontrol的安装 2 1