zoukankan      html  css  js  c++  java
  • [转]SVN + CruiseControl.NET + NANT 自动编译提交的项目最小DEMO

    本文转自:http://blog.csdn.net/markgoo/article/details/5739103

    第一步,当然是安装这些软件了,

    SVN — 我用的是TortoiseSVN , 方便与windows集成. CruiseControl.NET — 最新版本可以从这里获取: 点我  NANT — 构建工具,无需多说, 点我  还需要:IIS.

    第二步, 打开C:/Program Files/CruiseControl.NET/server/ccnet.config(C:/Program Files/CruiseControl.NET为安装目录), 一开始其中是空的, 删掉所有内容,然后填入以下内容

     

    [xhtml:nogutter] view plaincopy
    1. <cruisecontrol xmlns:cb="urn:ccnet.config.builder">  
    2. <project name="Test1">  
    3.     <triggers>  
    4.       <intervalTrigger initialSeconds="0" seconds="1800"/>  
    5.     </triggers>  
    6.     <sourcecontrol type="svn">  
    7.     <trunkUrl>svn://mgytset/MGDataAccess/</trunkUrl>  
    8.     <workingDirectory>c:/CCNetTest1</workingDirectory>  
    9.     <executable>C:/Program Files/CollabNet Subversion Server/svn.exe</executable>  
    10.     <username>XXXXX</username>  
    11.     <password>XXXXX</password>  
    12.     </sourcecontrol>     
    13. </project>  
    14. </cruisecontrol>  

     

    其中intervalTrigger 这里配置了多少时间自动触发.这里设置了30分钟自动重新编译. 然后配置版本控制的信息: sourcecontrol : 使用哪种版本控制工具, trunkUrl :该项目的SVN路径, workingDirectory :配置的这个目录将作为CruiseControl.NET的工作目 录,CruiseControl.NET会将代码从SVN中 check out到这个目录中. executable :填入你机器上的SVN的可执行文件路径. username/password : SVN的用户名与密码.

    这个时候可以先进入服务,把CruiseControl.NET服务启动了

    php15C7

     

    然后进入IIS中的CCNET(默认名),点查看就可以进入到CruiseControl.NET的页面了.

     

    php15C8

    点击右方Admin 下的Force 按钮来强制重新获取最新版本.过一会就能 看到Status 变成 Successful了.

    做到这里.我们已经基本能够看到效果了,但是我们还有一个没有做, 就是现在没有编译, 接下来我们就要让这项目自动编译,然后让CruiseControl.NET来显示编译结果.

    首先,我们需要给我们的项目创建一个NANT的build文件.以下是一个很基本的build文件,大家也可以去股沟一下更具体的配置方法.

     

    [xhtml] view plaincopy
    1. <?xml version="1.0"?>  
    2. <project name="MGDataAccess" default="build" basedir=".">  
    3. <property name="debug" value="true" overwrite="false" />  
    4.    <target name="clean">  
    5.     <delete dir="bin" failonerror="false"/>  
    6.     <delete dir="obj" failonerror="false"/>  
    7.   </target>  
    8.    
    9.   <target name="build" depends="clean">      
    10.     <csc target="library" output="bin/debug/MGDataAccess.dll"  debug="${debug}">  
    11.       <sources>  
    12.         <include name="*/*"/>  
    13.     <exclude name="MGDataAccess.build" />  
    14.       </sources>  
    15.     </csc>  
    16.   </target>  
    17. </project>  

     

    这里面第一个target是clean,用来删除bin 以及 obj文件夹, 第二个target 是build,加了depends=”clean” 之后执行 build会首先执行clean的工作. exclude 这个是排除哪些文件不让其编译. 保存这个文件为MGDataAccess.build,放到你的项目目录中去.

    * 对于NANT的build文件,有一个项目nantcontrib可以自动生成,但是我每次都失败了,各位也 可以去看看nantcontrib

    然后再一次打开CruiseControl.NET的配置文件ccnet.config,在project node下面再加入以下内容:

     

    [xhtml] view plaincopy
    1. <tasks>  
    2.       <nant>  
    3.         <executable>C:/Program Files/NAnt/bin/nant.exe</executable>  
    4.         <buildFile>C:/CCNetTest1/MGDataAccess.build</buildFile>  
    5.       </nant>  
    6.    </tasks>  

     

    executable :NANT的可执行文件路径. buildFile : 之前配置的build文件的路径.

    这样之后再去force一下,就是项目编译之后的结果了,可以尝试故意让项目不能编译,然后commit到SVN,这个时候force一下,就会看 到项目的status为failed了 php15DF

    一个最基本的DEMO就完成了, 如果有任何问题请告诉我哦!

    之后我还会将NUnit以及simian加入进来,让这个小DEMO更加完善.

  • 相关阅读:
    Elasticsearch Transport 模块创建及启动分析
    ElasticSearch中的JVM性能调优
    ElasticSearch 线程池类型分析之 ResizableBlockingQueue
    ElasticSearch 线程池类型分析之 ExecutorScalingQueue
    ElasticSearch 线程池类型分析之SizeBlockingQueue
    Redis的LRU算法
    hdu 1828 Picture(线段树扫描线矩形周长并)
    sublime text2 插件
    Python学习笔记(十四):模块高级
    梦想启航
  • 原文地址:https://www.cnblogs.com/freeliver54/p/2872346.html
Copyright © 2011-2022 走看看