2010年07月12日, 星期一SVN + CruiseControl.NET + NANT 自动编译提交的项目最小DEMO
第一步,当然是安装这些软件了,
SVN — 我用的是TortoiseSVN, 方便与windows集成.
CruiseControl.NET — 最新版本可以从这里获取: 点我
NANT — 构建工具,无需多说, 点我
还需要:IIS.
第二步,
打开C:\Program Files\CruiseControl.NET\server\ccnet.config(C:\Program Files\CruiseControl.NET为安装目录),
一开始其中是空的,
删掉所有内容,然后填入以下内容
<cruisecontrol xmlns:cb="urn:ccnet.config.builder"> <project name="Test1"> <triggers> <intervalTrigger initialSeconds="0" seconds="1800"/> </triggers> <sourcecontrol type="svn"> <trunkUrl>svn://mgytset/MGDataAccess/</trunkUrl> <workingDirectory>c:\CCNetTest1</workingDirectory> <executable>C:\Program Files\CollabNet Subversion Server\svn.exe</executable> <username>XXXXX</username> <password>XXXXX</password> </sourcecontrol> </project> </cruisecontrol>
其中intervalTrigger 这里配置了多少时间自动触发.这里设置了30分钟自动重新编译.
然后配置版本控制的信息:
sourcecontrol: 使用哪种版本控制工具,
trunkUrl:该项目的SVN路径,
workingDirectory:配置的这个目录将作为CruiseControl.NET的工作目录,CruiseControl.NET会将代码从SVN中 check out到这个目录中.
executable:填入你机器上的SVN的可执行文件路径.
username/password: SVN的用户名与密码.
这个时候可以先进入服务,把CruiseControl.NET服务启动了

然后进入IIS中的CCNET(默认名),点查看就可以进入到CruiseControl.NET的页面了.
点击右方Admin下的Force按钮来强制重新获取最新版本.过一会就能看到Status 变成 Successful了.
做到这里.我们已经基本能够看到效果了,但是我们还有一个没有做, 就是现在没有编译,
接下来我们就要让这项目自动编译,然后让CruiseControl.NET来显示编译结果.
首先,我们需要给我们的项目创建一个NANT的build文件.以下是一个很基本的build文件,大家也可以去股沟一下更具体的配置方法.
<?xml version="1.0"?> <project name="MGDataAccess" default="build" basedir="."> <property name="debug" value="true" overwrite="false" /> <target name="clean"> <delete dir="bin" failonerror="false"/> <delete dir="obj" failonerror="false"/> </target> <target name="build" depends="clean"> <csc target="library" output="bin\debug\MGDataAccess.dll" debug="${debug}"> <sources> <include name="*/*"/> <exclude name="MGDataAccess.build" /> </sources> </csc> </target> </project>
这里面第一个target是clean,用来删除bin 以及 obj文件夹,
第二个target是build,加了depends=”clean”之后执行build会首先执行clean的工作.
exclude这个是排除哪些文件不让其编译.
保存这个文件为MGDataAccess.build,放到你的项目目录中去.
*对于NANT的build文件,有一个项目nantcontrib可以自动生成,但是我每次都失败了,各位也可以去看看nantcontrib
然后再一次打开CruiseControl.NET的配置文件ccnet.config,在project node下面再加入以下内容:
<tasks> <nant> <executable>C:\Program Files\NAnt\bin\nant.exe</executable> <buildFile>C:\CCNetTest1\MGDataAccess.build</buildFile> </nant> </tasks>
executable:NANT的可执行文件路径.
buildFile: 之前配置的build文件的路径.
这样之后再去force一下,就是项目编译之后的结果了,可以尝试故意让项目不能编译,然后commit到SVN,这个时候force一下,就会看到项目的status为failed了

一个最基本的DEMO就完成了, 如果有任何问题请告诉我哦!
之后我还会将NUnit以及simian加入进来,让这个小DEMO更加完善.
