关于这个问题现在已经有几种解决办法了。SvnAnt: http://subclipse.tigris.org/svnant.html,我在日常的build中用的便是这种方法,但我并不喜欢这种方法,因为他需要依赖本地库。
其实只是一个很简单的任务:获取当前working copy的top svn revision,在已经安装了xmltask(http://www.oopsconsultancy.com/software/xmltask/)的前提下,只用一小段Ant脚本便可以完成这个任务:
1 <project name="GetSVNHeadRevision"> 2 3 <taskdef name="xmltask" classname="com.oopsconsultancy.xmltask.ant.XmlTask"/> 4 5 <property name="workingCopy" location="." /> 6 7 <target name="default"> 8 <exec dir="${workingCopy}" executable="svn"> 9 <arg line="up" /> 10 </exec> 11 <exec dir="${workingCopy}" executable="svn" output="svninfo.xml"> 12 <arg line="info --xml ${workingCopy}" /> 13 </exec> 14 <xmltask source="svninfo.xml"> 15 <copy path="/info/entry/@revision" property="svn.head.rev" /> 16 </xmltask> 17 </target> 18 </project>
通过antcall执行后,top revision会被保存在"svn.head.rev"属性中。
附注:这边还有一个解决方法:http://code.google.com/p/svntask/,大同小异了其实。