你可以找到亚历山德罗的博客答案/解释:http://www.sephiroth.it/weblog/archives/2010/01/update_your_app_version_using_ant_bui.php 这里的目标:
<target name="update-version">
<propertyset id="tdate"></propertyset>
<tstamp>
<format property="tdate" pattern="yyyyMMdd"/>
</tstamp>
<buildnumber file="build.number"/>
<echo>updating version to current datetime: ${tdate}</echo>
<replaceregexp byline="true">
<regexp pattern="public static const BUILD_DATE: String = \'([0-9]+)'"/>
<substitution expression="public static const BUILD_DATE: String = '${tdate}'"/>
<fileset dir="src/it/sephiroth/somestuff">
<include name="Library.as"/>
</fileset>
</replaceregexp>
<replaceregexp byline="true">
<regexp pattern="public static const BUILD_NUMBER: String = \'([0-9\.]+)'"/>
<substitution expression="public static const BUILD_NUMBER: String = '${build.number}'"/>
<fileset dir="src/it/sephiroth/somestuff">
<include name="Library.as"/>
</fileset>
</replaceregexp>
亚历山德罗的例子是为ActionScript它没有对我的Java工作也很好,所以这里的我用什么:
<target name="update-version">
<property file="build_info.properties" />
<property name="build.number" value="${build.major.number}.${build.minor.number}.${build.revision.number}" />
<echo>Updating build number: ${build.number}</echo>
<propertyset id="tdate" />
<tstamp>
<!-- 02.10.2011 21:27 -->
<format property="tdate" pattern="MM.dd.yyyy hh:mm" />
</tstamp>
<echo>Updating version to current datetime: ${tdate}</echo>
<replaceregexp byline="true"
match="BUILD_DATE = "([0-9\.]+)""
replace="BUILD_DATE = "${tdate}"">
<fileset dir="src/my/package">
<include name="Application.java" />
</fileset>
</replaceregexp>
<replaceregexp byline="true"
match="BUILD_NUMBER = "([0-9\.]+)""
replace="BUILD_NUMBER = "${build.number}"">
<fileset dir="src/my/package">
<include name="Application.java" />
</fileset>
</replaceregexp>
</target>
唯一的问题是你必须有一个属性文件名为“build_info.properties”与它的三个属性。
build.major.number=01
build.minor.number=00
build.revision.number=0001