zoukankan      html  css  js  c++  java
  • [CruiseControl]配置文件config.xml

    一 配置文件config.xml

    <cruisecontrol>
       
    <property/>
       
    <dashboard/>
       
    <include.projects/>
       
    <system>
          
    <configuration>
             
    <threads/>
          
    </configuration>
       
    </system>
       
    <plugin/>
       
    <project>
          
    <property/>
          
    <plugin/>
          
    <cvslabelincrementer>
          
    <emptylabelincrementer>
          
    <formattedlabelincrementer>
          
    <labelincrementer/>
          
    <p4changelistlabelincrementer>
          
    <propertyfilelabelincrementer>
          
    <svnlabelincrementer>
          
    <listeners>
             
    <cmsynergysessionmonitor/>
             
    <currentbuildstatusftplistener/>
             
    <currentbuildstatuslistener/>
             
    <currentbuildstatuspagelistener/>
             
    <lockfilelistener/>
          
    </listeners>
          
    <bootstrappers>
             
    <accurevbootstrapper/>
             
    <alienbrainbootstrapper/>
             
    <antbootstrapper/>
             
    <clearcasebootstrapper/>
             
    <clearcaseviewstrapper/>
             
    <cmsynergybootstrapper/>
             
    <cmsynergybaselinebootstrapper/>
             
    <cvsbootstrapper/>
             
    <darcsbootstrapper/>
             
    <execbootstrapper/>
             
    <gitbootstrapper/>
             
    <harvestbootstrapper/>
             
    <lockfilebootstrapper/>
             
    <mercurialbootstrapper/>
             
    <p4bootstrapper/>
             
    <plasticscmbootstrapper/>
             
    <snapshotcmbootstrapper/>
             
    <starteambootstrapper/>
             
    <surroundbootstrapper/>
             
    <svnbootstrapper/>
             
    <tfsbootstrapper/>
             
    <vssbootstrapper/>
          
    </bootstrappers>
          
    <modificationset>
             
    <accurev>
             
    <alienbrain/>
             
    <alwaysbuild/>
             
    <buildstatus/>
             
    <clearcase/>
             
    <cmsynergy/>
             
    <compound>
                
    <targets/>
                
    <triggers/>
             
    </compound>
             
    <cvs/>
             
    <darcs/>
             
    <filesystem/>
             
    <forceonly/>
             
    <git/>
             
    <harvest/>
             
    <httpfile/>
             
    <mavensnapshotdependency/>
             
    <maven2snapshotdependency/>
             
    <mercurial/>
             
    <mks/>
             
    <p4/>
             
    <plasticscm/>
             
    <pvcs/>
             
    <snapshotcm/>
             
    <starteam/>
             
    <store/>
             
    <surround/>
             
    <svn/>
             
    <tfs/>
             
    <timebuild>
             
    <ucm>
             
    <veto/>
             
    <vss/>
             
    <vssjournal/>
          
    </modificationset>
          
    <schedule>
             
    <ant/>
             
    <maven/>
             
    <maven2/>
             
    <pause/>
             
    <nant/>
             
    <phing/>
             
    <rake/>
             
    <exec/>
             
    <composite/>
             
    <xcode/>
          
    </schedule>
          
    <log>
             
    <merge/>
         
    <gzip/>
         
    <delete/>
         
    <deleteartifacts/>
          
    </log>
          
    <publishers>
             
    <antpublisher/>
             
    <artifactspublisher/>
             
    <clearcasebaselinepublisher/>
             
    <cmsynergybaselinepublisher/>
             
    <cmsynergytaskpublisher/>
             
    <compoundpublisher/>
             
    <email/>
             
    <execute/>
             
    <ftppublisher/>
             
    <htmlemail/>
             
    <http>
             
    <jabber/>
             
    <onfailure/>
             
    <onsuccess/>
             
    <origo/>
             
    <rss/>
             
    <sametimeannouncement/>
             
    <scp/>
             
    <sfeedocman/>
             
    <sfeefrs/>
             
    <sfeetracker/>
             
    <socket/>
             
    <twitter>
             
    <weblog>
             
    <x10/>
             
    <xsltlogpublisher/>
             
    <yahoopublisher/>
          
    </publishers>
       
    </project>
    </cruisecontrol>

    二 config.xml的元素<CruiseControl/>和子元素

    1)<CruiseControl/>

    <CruiseControl/>是配置文件的根节点,可以看做其他的元素容器。

    它可以包含子元素:<system>,<project>,<plugin>,<property>,<include.projects>,<dashboard>。

    2) <threads> (<system>/<configuration>/<threads>)

    <threads> 用来指定CruiseControl可同时build projects的最大数目。默认为1。如果某一时刻需要运行的projects大于threads的count属性指定的值,则多余count的projects将处于等待队列。

    它包含属性count。count表示thread的最大数目。

    3) <property>

    <property> 用来在config.xml中设置一个属性。

    它可以包含属性name,value,enviroment,file,toupper。name/value用来表示一个属性;enviroment用来指定可以使用的系统环境变量的前缀,例如当environment为myenv时,表示可以使用系统中的所有的以myenv开始的环境变量,例如myenv.path;file用来加载专门包含<property/>的文件,将所有的property导入到当前config.xml;toupper用来将属性的名字转化为大写。

    如下示例:

    1.Set a couple of global properties using name/value pairs: 
    <cruisecontrol>
        
    <property name="cruisedir" value="/home/cruise"/>
        
    <property name="logdir"    value="${cruisedir}/logs"/>
        ...
    <cruisecontrol>

    2.Set a collection of global properties from the properties file "config.properties":
    <cruisecontrol>
        
    <property file="config.properties"/>
        ...
    <cruisecontrol>

    3.Load the system's environment into a collection of global properties. Uppercase all environment variable names: 
    <cruisecontrol>
        
    <property environment="env" toupper="true"/>
        
    <property name="logdir"     value="${env.CCDIR}/logs"/>
        ...
    <cruisecontrol>

    4.Define a global property called "buildmanager". Override it's value only within the scope of the project called "project2". 
    <cruisecontrol>
        
    <property name="buildmanager" value="buildmgr@here.com"/>

        
    <project name="project1">
            
    <!-- ${buildmanager} resolves to "buildmgr@here.com" -->
        
    </project>

        
    <project name="project2">
            
    <property name="buildmanager" value="someoneelse@here.com"/>
            
    <!-- ${buildmanager} resolves to "someoneelse@here.com" -->
        
    </project>
    <cruisecontrol>

    5.As demonstrated here, properties and plugin pre-configuration can be an extremely powerful combination. 
    <cruisecontrol>
        
    <!-- Load environment variables -->
        
    <property environment="env" toupper="true"/>

        
    <!-- Commonly used directories -->
        
    <property name="reportdir"  value="${env.CCDIR}/report"/>
        
    <property name="projectdir" value="${env.CCDIR}/checkout/${project.name}"/>
        
    <property name="testdir" value="${projectdir}/build/junit-reports"/>
        
    <property name="logdir" value="${env.CCDIR}/logs/${project.name}"/>

        
    <!-- Defaults for email -->
        
    <property name="buildmaster.email"  value="buildmaster@example.com"/>
        
    <property name="buildmaster.name"  value="Buildmaster"/>

        
    <!-- Preconfigure our plugins -->
        
    <plugin name="log"
                dir
    ="${logdir}"/>

        
    <plugin name="currentbuildstatuslistener"
                file
    ="${logdir}/buildstatus.html"/>

        
    <plugin name="cvs"
                localworkingcopy
    ="${projectdir}"/>

        
    <plugin name="ant"
                antscript
    ="${env.ANT_HOME}/bin/ant"
                antWorkingDir
    ="${projectdir}"
                target
    ="cruise"/>

        
    <plugin name="htmlemail"
                buildresultsurl
    ="http://servername/cruisecontrol/buildresults/${project.name}"
                mailhost
    ="smtp.example.com"
                returnaddress
    ="${buildmaster.email}"
                returnname
    ="${buildmaster.name}"
                subjectprefix
    ="[BUILD ${project.name}]"
                xsldir
    ="${reportdir}/jsp/webcontent/xsl"
                css
    ="${reportdir}/jsp/webcontent/css/cruisecontrol.css"/>

        
    <project name="project1"/>
            
    <listeners>
                
    <currentbuildstatuslistener/>
            
    </listeners>
            
    <log>
                
    <merge dir="${testdir}">
            
    </log>
            
    <modificationset>
                
    <cvs/>
            
    </modificationset>
            
    <schedule>
                
    <ant/>
            
    </schedule>
            
    <publishers>
                
    <htmlemail>
                    
    <always  address="${buildmaster.email}">
                    
    <failure address="proj1dev@example.com">
                    
    <ignore address="buildmaster">
                
    </htmlemail>
            
    </publishers>
        
    </project>

        
    <project name="project2"/>
            
    <listeners>
                
    <currentbuildstatuslistener/>
            
    </listeners>
            
    <log>
                
    <merge dir="${testdir}">
            
    </log>
            
    <modificationset>
                
    <cvs/>
            
    </modificationset>
            
    <schedule>
                
    <ant/>
            
    </schedule>
            
    <publishers>
                
    <htmlemail>
                    
    <always  address="${buildmaster.email}">
                    
    <failure address="proj2dev@example.com">
                
    </htmlemail>
            
    </publishers>
        
    </project>
    </cruisecontrol>

    4)<include.projects>

    <include.projects>用来将多个config文件合并为config文件。

    它包含属性file,表示要include的config文件的相对路径。

    5)<dashboard>

    <dashboard>用来为build loop指定dashboard。

    它包含属性url,postinterval。url为dashboard的url,postinterval表示build loop传输build信息到dashboard的间隔。

    6)<project>

    <project>是基本的工作单元。包含检查source修改,build,发布build结果。

    它包含属性name,buildafterfailed,forcebuildnewproject,requiremodification,forceonly。buildafterfailed为ture表示即使build失败了,cruisecontrol继续保持build;forcebuildnewproject为ture表示如果没有发现project的序列文件(project.ser)就强制project开始build;requiremodification为ture表示当source code有修改时build,但是如果需要定时build或手动测试时,requiremodification需要为false。

    它包含子元素<listeners>,<bootstrappers>,<modificationset>,<schedule>,<log>,<publishers>,<plugin>。

    完!


    作者:iTech
    微信公众号: cicdops
    出处:http://itech.cnblogs.com/
    github:https://github.com/cicdops/cicdops

  • 相关阅读:
    打开安装 好的Microsoft Dynamics CRM 4.0 报错误为 Caller does not have enough privilege to set CallerOriginToken to the specified value 的解决办法
    基于 Windows Server 2008 的计算机对 Microsoft Dynamics CRM 4.0 的支持
    Microsoft Dynamics CRM 4.0 如何添加自定义按钮
    Microsoft Dynamics CRM 4.0 Plugin 取值,赋值,查询
    C# 中的 enum(枚举) 类型使用例子
    vue事件的绑定
    表单验证2
    node中模块
    node模块的引入
    node中的读文件
  • 原文地址:https://www.cnblogs.com/itech/p/1780202.html
Copyright © 2011-2022 走看看