【发布时间】:2010-03-31 16:24:19
【问题描述】:
我想从我的 ant 脚本生成一个包含我项目的 svn 版本号的属性文件。我已经完成了 1/3:
为此,我需要:
-
使用 svnversion
将结果放入一个 .properties 文件中,该文件最终位于我的构建路径中
我对 1a 和 2 有点迷茫。有什么想法吗?
【问题讨论】:
我想从我的 ant 脚本生成一个包含我项目的 svn 版本号的属性文件。我已经完成了 1/3:
为此,我需要:
使用 svnversion
将结果放入一个 .properties 文件中,该文件最终位于我的构建路径中
我对 1a 和 2 有点迷茫。有什么想法吗?
【问题讨论】:
没关系,我搞定了:
<target name="svnversion">
<echo file="${srcDir}/${packagePath}/svnversion.properties">svnversion=</echo>
<exec executable="svnversion"
output="${srcDir}/${packagePath}/svnversion.properties" append="true">
</exec>
</target>
【讨论】:
我使用的是执行svn info --xml,然后使用<XmlProperty> task 加载生成的xml 文件,最后只是替换属性文件中的一个标记,即构建路径的路径。
所以是这样的:
<target name="svn-build-number">
<tempfile property="svninfo.file"/>
<exec dir="." executable="svn" output="${svninfo.file}">
<arg line="info --xml"/>
</exec>
<echo message="${svninfo.file}" />
<xmlproperty file="${svninfo.file}" collapseAttributes="true" />
<echo message="${info.entry.revision}" />
</target>
${info.entry.revision} 中是当前目录中存储库的修订版。
【讨论】: