有没有办法使用svn ant任务获取工作副本的svn修订版号并将其放入变量?
我想在我的Java清单文件中添加一个条目,其中包含svn修订号,例如: 0.9.65361
其中65361
是修订号。
答案 0 :(得分:6)
啊哈,我发现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" />
答案 1 :(得分:0)
有几种方法 -
使用实用程序 - 我相信您正在寻找这个 - https://code.google.com/p/svntask/我已将它用于某些方面 项目并且效果很好。
- 醇>
使用命令行工具。 - &#34; svn info http://svn.myweb.com/myproject&#34;。要使用此方法,只需创建一个 批处理文件并将此命令放在批处理文件中。然后打个电话 来自您的ant任务的批处理文件,并从中获取修订号 搜索的文本以行&#34; Revision:&#34;开头。或者你可以 只是转储整个结果。
答案 2 :(得分:0)
这是我的变体,用于在应用程序工件中捆绑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>