ant学习之集成svn

今天想通过ant任务从svn中下载文件,由于build.xml想在任意一台机器上随意使用,所以在每台机器上都按照svn不太实际,今天查了下资料,发现可以通过javahl或者svnkit来执行,下面对ant集成svn的方式进行介绍。本文主要参考http://blog.csdn.net/zh2qiang/article/details/6795823

准备:
1、下载svnant-1.3.1,然后将其lib目录下的jar文件拷贝到ant的lib下,或者自己的目录(在build.xml文件中指定这些jar文件的路径即可),主要包括svnant.jar、svnClientAdapter.jar、svnjavahl.jar、svnkit.jar
2、下载svnkit-1.8.1,将其lib目录下的svnkit-javahl16-1.8.1.jar拷贝到svnkit.jar的目录(也可下载其它版本,这里用到的主要是svnkit-javahl16-1.8.1.jar这个文件)
该包及svnkit.jar包用于svnkit方式
3、下载libsvnjavahl-1.dll,放到svnant.jar的目录或者C:\WINDOWS\system32目录下
此文件及svnjavah.jra用于javahl方式

方式一:commandline方式,需要安装svn客户端。buid.xml文件如下:
<?xml version="1.0"?>  
<project name="svn-test" basedir="." default="run">
<property file="build.properties" />
<path id="path.svnant">
<pathelement location="${svnant.jar}" />
<pathelement location="${svnClientAdapter.jar}" />
</path>
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="path.svnant"/>
<svnSetting id="svn.setting" svnkit="false" javahl="false" username="${svnant.repository.user}" password="${svnant.repository.passwd}" />

<target name="checkoutLatest">
<svn refid="svn.setting">
<!--checkout url="http://svn.apusic.net/aesb/cluster/trunk/src/engine/apusic-esb-test-server/anttool/product-config" revision="HEAD" destPath="${basedir}/config/" />
-->
<export srcUrl="http://svn.apusic.net/aesb/cluster/trunk/src/engine/apusic-esb-test-server/anttool/product-config/dirs" revision="HEAD" destpath="${basedir}/config/" />

</svn>
</target>
</project>

依赖Jar包:svnant.jar,svnClientAdapter.jar

方式二: javahl方式
该方式需要libsvnjavahl-1.dll,将该文件放到C:\WINDOWS\system32目录下或者svnant.jar同目录。buid.xml文件如下:
<?xml version="1.0"?>  
<project name="svn-test" basedir="." default="run">
<property file="build.properties" />
<path id="project.classpath">
<pathelement location="${svnjavahl.jar}" />
<pathelement location="${svnant.jar}" />
<pathelement location="${svnClientAdapter.jar}" />
</path>
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="project.classpath"/>
<svnSetting id="svn.setting" svnkit="false" javahl="true" username="${svnant.repository.user}" password="${svnant.repository.passwd}" />

<target name="checkoutLatest">
<svn refid="svn.setting">
<checkout url="http://svn.apusic.net/aesb/cluster/trunk/src/engine/apusic-esb-test-server/anttool/product-config" revision="HEAD" destPath="${basedir}/product-config/" />
</svn>
</target>
</project>

依赖Jar包:svnant.jar,svnClientAdapter.jar,svnjavahl.jar。
可能出现的异常:Missing 'javahl' dependencies on the classpath !,原因缺少libsvnjavahl-1.dll文件
本人试验时无论将libsvnjavahl-1.dll放到哪里,均无法正确执行下载任务,暂时未找到原因

方式三:svnkit方式
build.xml文件如下:
<?xml version="1.0"?>  
<project name="svn-test" basedir="." default="run">
<property file="build.properties" />
<path id="project.classpath">
<pathelement location="${svnant.jar}" />
<pathelement location="${svnClientAdapter.jar}" />
<pathelement location="${svnkit.jar}" />
<pathelement location="${svnkitjavahl.jar}" />
</path>
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="project.classpath"/>
<svnSetting id="svn.setting" svnkit="true" javahl="false" username="${svnant.repository.user}" password="${svnant.repository.passwd}" />

<target name="checkoutLatest">
<svn refid="svn.setting">
<checkout url="http://svn.apusic.net/aesb/cluster/trunk/src/engine/apusic-esb-test-server/anttool/product-config" revision="HEAD" destPath="${basedir}/product-config/" />
<!--<export srcUrl="http://svn.apusic.net/aesb/cluster/trunk/src/engine/apusic-esb-test-server/anttool/product-config" revision="HEAD" destpath="${basedir}/product-config/" /> -->
</svn>
</target>
</project>

依赖Jar包:svnant.jar,svnClientAdapter.jar,svnkit.jar,svnkit-javahl.jar
可能出现的异常:Missing 'svnkit' dependencies on the classpath !,原因缺少svnkit-javahl.jar文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值