SvnAnt是一个用来与Subversion版本控制系统进行交互的一个Ant扩展,利用它可以在Ant任务中对 SVN进行操作。利用SvnAnt对SVN进行操作有以下三种方式:
1. commandline方式这种方式需要安装Subversion。buid.xml文件如下:

[html]  view plain copy
  1. <?xml version="1.0" encoding="gb2312"?>  
  2. <project basedir="." name="cowork" default="svncheckout">  
  3.   <property name="destPath" value="${basedir}" />  
  4.   
  5.   <property name="svnurl" value="http://svn.xxx.com/xxx" />  
  6.   <property name="svn.username" value="username" />  
  7.   <property name="svn.password" value="password" />  
  8.   
  9.   <path id="path.svnant">  
  10.     <fileset dir="${basedir}">  
  11.       <include name="**/*.jar"/>  
  12.     </fileset>  
  13.   </path>  
  14.   
  15.   <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="path.svnant"/>  
  16.   <target name="svncheckout" >  
  17.     <svnSetting id="svnparams" username="${svn.username}" password="${svn.password}" javahl="false"/>  
  18.     <svn refid="svnparams">  
  19.       <checkout url="${svnurl}" destPath="${destPath}" />  
  20.     </svn>  
  21.   </target>  
  22. </project>  

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

 这里特别提醒下:

1、svnant-1.3.1自带的build.xml文件,在用svn clent模式的时候 会报:Missing 'javahl' dependencies on the classpath和Cannot find javahl, svnkit nor command line svn client,因为此bulid.xml文件中没设置javahl="false"属性。

2、另外,checkout的路径要用斜杠“/”结尾,否则可能提示:Authentication failed and interactive prompting is disabled; see the --force-interactive option

2. javahl方式
这种方式需要libsvnjavahl-1.dll,将该文件放到C:\WINDOWS\system32目录下。buid.xml文件如下:

[html]  view plain copy
  1. <?xml version="1.0" encoding="gb2312"?>  
  2. <project basedir="." name="cowork" default="svncheckout">  
  3.   <property name="destPath" value="${basedir}" />  
  4.   
  5.   <property name="svnurl" value="http://svn.xxx.com/xxx" />  
  6.   <property name="svn.username" value="username" />  
  7.   <property name="svn.password" value="password" />  
  8.   
  9.   <path id="path.svnant">  
  10.     <fileset dir="${basedir}">  
  11.       <include name="**/*.jar"/>  
  12.     </fileset>  
  13.   </path>  
  14.   
  15.   <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="path.svnant"/>  
  16.   <target name="svncheckout" >  
  17.     <svnSetting id="svnparams" username="${svn.username}" password="${svn.password}" javahl="true"/>  
  18.     <svn refid="svnparams">  
  19.       <checkout url="${svnurl}" destPath="${destPath}" />  
  20.     </svn>  
  21.   </target>  
  22. </project>  
依赖Jar包:svnant.jar,svnClientAdapter.jar,svnjavahl.jar。
可能出现的异常:Missing 'javahl' dependencies on the classpath !,原因缺少libsvnjavahl-1.dll文件
说明:libsvnjavahl-1.dll文件也可以和svnant.jar文件放到一起

3. svnkit方式
build.xml文件如下:

[html]  view plain copy
  1. <?xml version="1.0" encoding="gb2312"?>  
  2.   
  3. <!-- binding svnkit -->  
  4. <project basedir="." name="cowork" default="svncheckout">  
  5.   <property name="destPath" value="${basedir}" />  
  6.   
  7.   <property name="svnurl" value="http://svn.xxx.com/xxx" />  
  8.   <property name="svn.username" value="username" />  
  9.   <property name="svn.password" value="password" />  
  10.   
  11.   <path id="path.svnant">  
  12.     <fileset dir="${basedir}">  
  13.       <include name="**/*.jar"/>  
  14.     </fileset>  
  15.   </path>  
  16.   
  17.   <typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="path.svnant"/>  
  18.   <target name="svncheckout" >  
  19.     <svnSetting id="svnparams" username="${svn.username}" password="${svn.password}" javahl="false" svnkit="true"/>  
  20.     <svn refid="svnparams">  
  21.       <checkout url="${svnurl}" destPath="${destPath}" />  
  22.     </svn>  
  23.   </target>  
  24. </project>  
依赖Jar包:svnant.jar,svnClientAdapter.jar,svnkit.jar,svnkit-javahl.jar
可能出现的异常:Missing 'svnkit' dependencies on the classpath !,原因缺少svnkit-javahl.jar文件

        综上所述,三种方式均依赖svnant.jar和svnClientAdapter.jar;其中svnant.jar定义了Ant任务及与SVN交互的接口,它通过svnClientAdapter.jar适配以上三张交互方式。三种方式的主要区别如下:

 

依赖对象

参数

comandline

安装Subversion,

svnant.jar,svnClientAdapter.jar

javahl="false"

javahl

libsvnjavahl-1.dll,

svnant.jar,svnClientAdapter.jar,svnjavahl.jar

javahl="true"

svnkit

svnant.jar,svnClientAdapter.jar,svnkit.jar,

svnkit-javahl.jar

javahl="false",

svnkit="true"

 

资源下载:

1. 下载svnant压缩包,获取svnant.jar,svnClientAdapter.jar,svnjavahl.jar,svnkit.jar

2. 下载svn的eclipse插件包,从中获取libsvnjavahl-1.dll

3. 下载svnkit压缩包,获取svnkit-javahl.jar


原文地址:http://blog.csdn.net/zh2qiang/article/details/6795823

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐