[转]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更加完善.

posted on 2013-01-22 23:51  freeliver54  阅读(1660)  评论(0编辑  收藏  举报

导航