Vous pouvez trouver la réponse/explication sur le blog de Alessandro: http://www.sephiroth.it/weblog/archives/2010/01/update_your_app_version_using_ant_bui.php est ici la cible:
<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>
exemple Alessandro est pour Actionscript qui ne fonctionne pas trop bien sur mon Java, est donc ici ce que je faisais:
<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>
Le seul hic est que vous devez avoir un fichier de propriétés nommé « build_info.properties » avec les trois propriétés en elle.
build.major.number=01
build.minor.number=00
build.revision.number=0001