[转]SVN + CruiseControl.NET + NANT 自动编译提交的项目最小DEMO
2013-01-22 23:51
543 查看
本文转自: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
<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文件,大家也可以去股沟一下更具体的配置方法.
[xhtml] view plaincopy
<?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下面再加入以下内容:
[xhtml] view plaincopy
<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更加完善.
第一步,当然是安装这些软件了,
SVN — 我用的是TortoiseSVN , 方便与windows集成. CruiseControl.NET — 最新版本可以从这里获取: 点我 NANT — 构建工具,无需多说, 点我 还需要:IIS.
第二步, 打开C:/Program Files/CruiseControl.NET/server/ccnet.config(C:/Program Files/CruiseControl.NET为安装目录), 一开始其中是空的, 删掉所有内容,然后填入以下内容
[xhtml:nogutter] view plaincopy
<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文件,大家也可以去股沟一下更具体的配置方法.
[xhtml] view plaincopy
<?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下面再加入以下内容:
[xhtml] view plaincopy
<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更加完善.
相关文章推荐
- SVN + CruiseControl.NET + NANT 自动编译提交的项目
- CruiseControl.NET svn获取 自动编译 ftp上传
- 每日集成CruiseControl.NET + SVN + Msbuild + NAnt
- CruiseControl.NET配置文件(生产环境版本,与SVN结合自动部署)
- 自动化持续集成编译 配置 CruiseControl.Net SVN
- 自动化持续集成编译 配置 CruiseControl.Net SVN
- ANT发布SVN WEB项目到TOMCAT以及利用post-commit自动提交编译更新
- 自动化持续集成编译 配置 CruiseControl.Net SVN
- ANT发布SVN WEB项目到TOMCAT以及利用post-commit自动提交编译更新
- 从SVN上更新项目后,MyEclipse不能自动编译问题解决
- 项目管理实践【五】自动编译和发布网站【Using Visual Studio with Source Control System to build and publish website autom
- 项目管理实践【三】每日构建【Daily Build Using CruiseControl.NET and MSBuild】
- 自动build服务器 CruiseControl.NET
- Windows Server配置Jenkins,实现监测SVN提交自动构建.net4.5的项目
- svn客户端提交项目代码后自动同步svn服务器上的项目代码到linux服务器上
- 项目管理实践(VisualSVN,TortoiseSVN,AnkhSVN,CruiseControl.NET,redmine,bugfree)
- 项目管理实践【五】自动编译和发布网站【Using Visual Studio with Source Control System to build and publish website automatically】
- 项目管理实践【三】每日构建【Daily Build Using CruiseControl.NET and MSBuild】
- Continuous Integration using CruiseControl.NET, NANT, P4, and NUnit
- 持续集成:CruiseControl.NET + VisualSVN.Server