2019独角兽企业重金招聘Python工程师标准>>>

一直想让项目的编译自动化,由于代码服务器使用的是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,把自己从重复工作中解脱出来。

转载于:https://my.oschina.net/xingshenyan/blog/97693

ANT集成SVNANT访问SVN(Subversion)相关推荐

  1. centos7搭建SVN并配置使用http方式访问SVN服务器

    一.检查SVN是否安装 centos7系统自带SVN # rpm -qa subversion [root@localhost ~]# rpm -qa subversion subversion-1. ...

  2. Linux/CentOS下安装Apache/SVN/Subversion图文详解教程

    Linux(CentOS)下安装Apache+Subversion(图文教程) 服务器版本和安装软件 服务器版本: RedHatCentOS 5.5 32 bit 安装软件: apr-1.3.5.ta ...

  3. 通过Htpp访问svn内容

    通过Htpp访问svn内容 企业日常代码或文档托管,都采用TortoiseSVN 小乌龟来管理, 默认它是使用自己的svn协议.本文分享下svn通过http协议来访问内容 安装并启动: 安装svn y ...

  4. 修改了svn服务器配置,配置http方式访问svn服务器

    本文讲述如何利用Apache配置实现http的方式访问Subversion,本文的目录如下: 配置http匿名访问 增加用户名和密码控制 增加文件目录控制 [前提要求] 安装apache httpd, ...

  5. 使用mod_dav_svn模块访问SVN仓库方法揭秘

    本节向大家简单介绍一下使用mod_dav_svn访问SVN仓库的方法,主要有四个步骤,和大家一起学习一下,希望本节使用mod_dav_svn访问SVN仓库方法介绍对你的学习与所帮助. 在前面的日志中, ...

  6. 虚拟机访问svn服务器超时_SVN卡顿原因及简单修复方法

    项目中用SVN,使用过程中尤其时访问SVN浏览器的时候经常卡顿,这个时间累积起来很是浪费,所以找个机会从各个方面分析了一下卡顿原因,也总结了一些修复经验. 硬件问题 查看电脑配置是否SSD双硬盘,如果 ...

  7. linux下svn(subversion)服务端添加工程及配置权限

    linux下svn(subversion)服务端添加工程及配置权限 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/9010507.html 此篇我只是将所做过的 ...

  8. SVN(subversion )服务端和客户端的下载安装使用

    目录 一.服务端下载 二.客户端下载 三.服务端的安装 四.客户端的安装 五.windows环境下如何给intelij idea配置SVN 六.IntelliJ IDEA 使用SVN提交.更新.查看历 ...

  9. svn禁止访问“/svn/project/!svn/act解决办法

    最近进行svn提交不了,系统提示如下错误:   禁止访问"/svn/project/!svn/act/xxxxxxxxxxxxxxx"   以为是权限问题,反复试了好几遍,权限设置 ...

最新文章

  1. SBB:石油污染土壤微生物群落构建与生物多样性研究(一作解读)
  2. AI时代,人与机器的沟通方式
  3. Js 原型对象与原型链(转)
  4. 递归删除父节点及所有子节点(转)
  5. GridView导出到Excel或Word文件
  6. 82%开源软件兼容Windows
  7. 实验详解——DNS网关服务器的分离解析
  8. 实现.Net程序中OpenTracing采样和上报配置的自动更新
  9. 结合WebSocket编写WebGL综合场景示例
  10. php新特性:trait 关键字使用
  11. 如果 AI 和算法无罪,那么谁在杀死穷人?
  12. grace hopper_开源日,在Grace Hopper会议上建立FOSS技能
  13. IDC:安全性、价格和低复杂性是企业采用SD-WAN的主要动因
  14. Django【跨域】
  15. 中国IT行业薪资:与销售相比,程序员真得很“穷”
  16. Scratch3.0安装教程
  17. CRC校验算法——C语言实现
  18. 【K8S】K8s部署Metrics-Server服务
  19. java从键盘上输入一位整数_当输入1到7时_从键盘上输入一位整数,当输入1~7时,显示对应的英文星期名称的缩写。...
  20. 第九周 练习判断闰年和平年

热门文章

  1. 一文告诉你,为什么要研究JVM原理
  2. 你需要知道的缓存击穿/穿透/雪崩
  3. pycharm代码自动补全功能
  4. 微信小程序开发优秀教程及文章合集第一期
  5. Android下对Cookie的读写操作(附Demo)
  6. 计算Android屏幕解锁组合数
  7. Android防止系统休眠
  8. Microsoft Dynamics CRM4.0 Data Auditing and Restore (数据审核和恢复)
  9. 非营利组织Eatbch展示了每一个小的微交易是如何起作用的
  10. 6-2pxe应用入门