是否有方法使用svn ant任务来获取工作副本的svn修订号并将其放入变量中?
我想在我的Java清单文件中添加一个条目,其中包括svn的修订号,例如0.9.65361
,其中65361
是修订号。
啊哈,我发现了这个想法,它只依赖于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 info http://svn.myweb.com/myproject"。要使用此方法,只需创建一个批处理文件,并将此命令放入批处理文件中。然后调用这个批处理文件,并从通过搜索以"Revision:"行开头的文本。或者你可以
这是我在应用程序工件中捆绑svn修订信息的变体:
<target name="svn_revisions">
<hostinfo prefix="HOST"/>
<echo file="${dir.out}/.revisions" message="Built by ${user.name} on ${HOST.NAME}${line.separator}"/>
<exec dir="${basedir}" executable="svn" output="${dir.out}/.revisions" append="true">
<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="${dir.out}/ROOT.war" webxml="web/WEB-INF/web.xml">
<!-- main stuff -->
<zipfileset dir="${dir.out}" prefix="META-INF" includes=".revisions"/>
</war>
</target>