有没有一种方法可以使用svn ant任务获取工作副本的svn修订版号并将其放入变量中?
我想在我的Java清单文件中添加一个条目,其中包括svn修订版号,例如0.9.65361
,其中65361
是修订号。
啊哈,我发现了this idea,它仅取决于SVN中的svnversion
命令行实用程序。
<project name="ant-exec-example" default="svnversion" basedir=".">
<target name="svnversion">
<exec executable="svnversion" outputproperty="svnversion" />
<echo message="SVN Version: ${svnversion}"/>
</target>
</project>
这里是在ant属性中捕获版本的位置:
<exec executable="svnversion" outputproperty="svnversion" />
有几种方法-
使用实用程序-我相信您正在寻找这个-https://code.google.com/p/svntask/我已将其用于某些方面项目,效果很好。
使用命令行实用程序。 -“ svn信息http://svn.myweb.com/myproject”。要使用此方法,只需创建一个批处理文件,然后将此命令放入批处理文件。然后叫这个您的ant任务中的批处理文件,并从通过搜索该文本以“ Revision:”行开头。或者你可以只是转储整个结果。
这是我的变体,用于在应用程序工件内捆绑svn修订版信息:
<target name="svn_revisions">
<exec dir="${basedir}" executable="svn" output="${dir.out}/.revisions">
<arg line="info"/>
</exec>
<exec dir="${basedir}" executable="svn" output="${dir.out}/.revisions" append="true">
<arg line="status -u"/>
</exec>
</target>
<target name="build-war" depends="compile, svn_revisions">
<war basedir="web" file="${file.artifacts.DL}" webxml="web/WEB-INF/web.xml">
<!-- main stuff -->
<zipfileset dir="${dir.out}" prefix="META-INF" includes=".revisions"/>
</war>
</target>