如何在ant脚本中获取svn版本号

来源:互联网 发布:java为app接口开发实例 编辑:程序博客网 时间:2024/06/05 05:30

关于这个问题现在已经有几种解决办法了。SvnAnt: http://subclipse.tigris.org/svnant.html,我在日常的build中用的便是这种方法,但我并不喜欢这种方法,因为他需要依赖本地库。


只是一个很简单的任务:获取当前working copy的top svn revision,在已经安装了xmltask(http://www.oopsconsultancy.com/software/xmltask/)的前提下,我可以只靠一小段Ant脚本便可以完成这个任务:

<project name="GetSVNHeadRevision">        <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/>        <property name="workingCopy" location="." />        <target name="default">        <exec dir="${workingCopy}" executable="svn">            <arg line="up" />        </exec>        <exec dir="${workingCopy}" executable="svn" output="svninfo.xml">            <arg line="info --xml ${workingCopy}" />        </exec>        <xmltask source="svninfo.xml">            <copy path="/info/entry/@revision" property="svn.head.rev" />        </xmltask>    </target></project>


通过antcall执行后,top revision会被保存在"svn.head.rev"属性中。


附注:这边还有一个解决方法:http://code.google.com/p/svntask/,大同小异了其实。

原创粉丝点击