Ant+Subversion总结
公司使用Subversion替换了用了N年的VSS6.0C,那么公司的ANT打包脚本也需要做相应改变,下面针对这个变更的过程
做下总结,一直信奉一句话:知识在于沉淀。
1、ant本身需要svnant任务插件支持,才能在ant脚本中获取svn中的内容,svnant是subclipse的组件之一,它的URL是:
http://subclipse.tigris.org/svnant.html
2、这里使用的是svnant-1.1.0-RC2版本,使用前需要将它依赖的类库放在ant安装目录下面的lib目录;
3、要想使用svnant中的任务访问svn的话,首先要定义新的task:
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpath="svnant.jar" /> <!-- 这里就要求svnant.jar在系统classpath中 -->
4、由于是每日构建,需要每天将最新版本的程序更新下来,因此这里使用的是export任务,而不是checkout:
<target name="export" depends="clean">
<!-- 这里将javahl设为true是为了使用纯java实现的svn访问中间层,而不是使用svn的二进制命令行客户端 -->
<svn javahl="true" username="${svn_User}" password="${svn_Password}" failonerror="false">
<!--Get 预算外 File-->
<export srcUrl="${nonbudget-web-root}" destPath="./nonbudget_WebRoot" revision="HEAD" />
</svn>
</target>
5、需要注意的是,export命令也好,checkout命令也好,都不允许将本地目录和svn上一个以上的url关联,也就是说无法将svn上的两个以上目录
的内容导出到本地的一个目录。
6、由于这里是个总结,因此svnant支持的相关任务在这里就不介绍了,svnant包内包含详细的说明文档。