文档章节

ANT集成SVNANT访问SVN(Subversion)

xingshenyan
 xingshenyan
发布于 2012/12/23 00:06
字数 687
阅读 1395
收藏 3
一直想让项目的编译自动化,由于代码服务器使用的是SVN,同时脚本用的是ANT,就涉及到如何在ANT中来访问SVN,checkout/commit/update/export 等。
 
  在网上查了很多资料,发现都没有介绍原理,只是生搬硬套,很容易搞错,却不知错在哪里。通过研究ANT,SVN,SVNANT等几方面的原始英文文档,这里准备详细说明一下。
   首先,说一下我的配置:
ANT ,1.8.4
SVN, 1.7.8
SVNANT:1.3.1 ,
时间:2012.12.22(传说中的玛雅人预测的世界末日)。
  ANT 想要和SVN集成到一起,其实至少有以下三种方案:
方案一:直接利用ANT 的命令 <exec> 来完成。
        需要注意的是,这需要在运行ANT的机器上安装SVN,同时,此种方式严重依赖操作系统。
        下面以WINDOWS为例。
<?xml version="1.0" encoding="UTF-8"?>
<project name="test">
   <property name="svn-url" value="svn://localhost"></property>
   <target name="hello">
      <echo message="hello ant!"></echo>
      <exec executable="svn" > //<!-- 直接调用 svn.exe,注意svn.exe要能够通过path访问到-->
       <arg line="co ${svn-url}/test1/src test2/src"/> <!-- 设置svn 的命令行参数 -->
      </exec>

   </target>
</project>
     怎么样,还是挺简单吧?!
方案二:利用SVNANT中的SVNKIT
 
 注意:本方案和方案三都需要把SVNANT解压后的所有JAR包都放入ANT\LIB目录下,方便查找使用。

<?xml version="1.0" encoding="UTF-8"?>
<project name="test">
   <property name="svn-url" value="svn://localhost"></property>
   <property name="basedir" value="d:/apache-ant-1.8.2/lib"></property>
   <path id="path.svnant">  <!-- 定义一个PATH元素,告诉ANT 到哪找SVNANT的类库 -->
       <pathelement location="${basedir}/svnant.jar"/> <!-- SVNANT顶层包-->
       <pathelement location="${basedir}/svnClientAdapter.jar"/>
<!-- SVNANT 与SVN通讯的适配器包-->       <pathelement location="${basedir}/svnjavahl.jar"/> <!-- SVNANT与SVN 通讯的JAVA BRIDGE包-->       
       <!-- ... -->
   </path>
   
   <typedef
       resource="org/tigris/subversion/svnant/svnantlib.xml"
       classpathref="path.svnant"
    /> 
<!--引用 svnantlib.xml ,其中定义了ANT的SVN命令,见下方详解。-->
    <svnSetting id="svn.settings" 
<!--定义svnSetting ,新的设置SVN属性方式-->      
      svnkit="true"  <!-- 通过SVNKIT模式(即设置为TRUE),而不是JAVAHL模式-->
       javahl="false"

       username=""
       password=""
    />
 

   <target name="hello">
      <echo message="hello ant!"></echo>
      <svn refid="svn.settings"
<!--引用上面定义的svnSetting ,新的设置SVN属性方式-->
         <checkout recurse="true" url="${svn-url}/test1/src" destPath="test2/src" /> <!-- 执行checkout 命令-->
       
      </svn>
      <echo message="success!"></echo>
   
   </target>

</project>


方案三:利用SVNANT中的JAVAHL

<?xml version="1.0" encoding="UTF-8"?>
<project name="test">
   <property name="svn-url" value="svn://localhost"></property>
   <property name="basedir" value="d:/apache-ant-1.8.2/lib"></property>
   <path id="path.svnant">
       <pathelement location="${basedir}/svnant.jar"/>
       <pathelement location="${basedir}/svnClientAdapter.jar"/>
       <pathelement location="${basedir}/svnjavahl.jar"/>
       
       <!-- ... -->
   </path>
   
   <typedef
       resource="org/tigris/subversion/svnant/svnantlib.xml"
       classpathref="path.svnant"
    />
    <svnSetting id="svn.settings"
       svnkit="false"
       javahl="trues"
<!-- 通过JAVAHL模式(即设置为TRUE),而不是SVNKIT模式-->
       username=""
       password=""
    />
 

   <target name="hello">
      <echo message="hello ant!"></echo>
      <svn refid="svn.settings">
         <checkout recurse="true" url="${svn-url}/test1/src" destPath="test3/src" />
       
      </svn>
      <echo message="success!"></echo>
   
   </target>

</project>

怎么样,还算简单吧?希望各位能够轻松应用ANT,把自己从重复工作中解脱出来。

© 著作权归作者所有

xingshenyan
粉丝 0
博文 1
码字总数 687
作品 0
海淀
项目经理
私信 提问
在ANT中使用SVN的支持

Ant+Subversion总结 公司使用Subversion替换了用了N年的VSS6.0C,那么公司的ANT打包脚本也需要做相应改变,下面针对这个变更的过程 做下总结,一直信奉一句话:知识在于沉淀。 1、ant本身需要...

红薯
2010/01/02
5.3K
1
ant 脚本从 svn上下载文件 的具体步骤,报错

我用的svn 是 svn-1.6.13.zip ,ant 是 apache-ant-1.8.2-bin.zip ,svnant 是 svnant-1.3.1.zip 解压安装成功,用ant 来copy 资源等都是可以的, 也把这么下面几个jar包都扔到 ant 的 lib 目录 ...

emilyzhang
2012/01/16
10.5K
6
使用ant从svn上checkout代码时长时间无反应最终超时,请指点

在使用ant从svn上checkout代码时,会出现长时间无反应,最终报错如下: [svn] svn: connection refused by the server [svn] svn: OPTIONS request failed on '/svn/test/Code/Test' [svn] s......

sillyfish521
2016/06/21
1K
4
使用svnant export 命令时 revision属性不起作用

我在使用svnant进行自动构建的时候,为什么revision属性不起作用呢?具体表现为:无论revision设置成什么版本号,从svn上export出来的文件都一样。 ant脚本附上: ps:我看svnant说明文档上说...

摩西
2013/02/05
796
0
ant集成svn报错

环境:ant:1.8.2,SVN版本1.7.19;svnant版本1.3.0 执行报错: E:\workspaces\javatest\build.xml:19: Problem: failed to create task or type svnSetting...

love淡淡
2015/04/22
349
0

没有更多内容

加载失败,请刷新页面

加载更多

javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法

下面的元素属性和元素方法都通过 elem.属性 或 elem.方法 的方式使用,window属性通过 window.属性 的方式使用,document属性则通过document调用: <script> /* ****** 元素视图属性 * offs...

Bing309
26分钟前
4
0
Apache Kafka快速入门指南

简介 Kafka是基于发布订阅的消息系统。最初起源于LinkedIn,于2011年成为开源Apache项目,然后于2012年成为Apache顶级项目。Kafka用Scala和Java编写,因其分布式可扩展架构及可持久化、高吞吐...

AiChinaTech
28分钟前
3
0
Discrete Cosine Transform [DCT] (离散余弦变换)

Discrete Cosine Transform [DCT] (离散余弦变换) 描述:Binarizer是一个Transformer。 离散余弦变换是与傅里叶变换相关的一种变换,它类似于离散傅立叶变换但是只使用实数。离散余弦变换相当...

divenwu
28分钟前
3
0
如何玩转 TiDB 性能挑战赛?本文教你 30 分钟快速上手拿积分!

作者:wish 上周我们正式宣布了 TiDB 性能挑战赛。在赛季内,通过向 TiDB、TiKV、PD 贡献代码完成指定类别任务的方式,你可以获得相应的积分,最终你可以使用积分兑换礼品或奖金。在性能挑战...

TiDB
30分钟前
3
0
12、SpringMVC数据回显

数据回显方法 1.springmvc默认对pojo数据进行回显。 pojo数据传入controller方法后,springmvc自动将pojo数据放到request域,key等于pojo类型(首字母小写) 使用@ModelAttribute指定pojo回显...

快乐的瓶子
31分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部