Re: Get Rev Number from SVN to Display in Web App
On 08/05/12 11:15, Jan Burse wrote:
Dear All,
Is there a simple Ant task to retrieve the revision
number of my code from a SVN repository, and then
store it in some location, so that later my web
application can show it?
Best Regards
I use NetBeans, and have added the following to its build.xml for an application in
which I want to include the SVN revision.
This sets a property for ant:
<target name="-post-init" description="Get the svn revision of the current build">
<exec dir=".." outputproperty="svna.version" executable="svnversion">
<arg value="-c" />
<redirector>
<outputfilterchain>
<tokenfilter>
<replaceregex pattern="^[0-9]*:?" replace="" flags="g"/>
</tokenfilter>
</outputfilterchain>
</redirector>
</exec>
<echo>SVN version ${svna.version}</echo>
</target>
This embeds it into the jar manifest in the post-jar target:
<target name="-post-jar">
....
<jar destfile="${tmp.dir}/temp_final.jar" filesetmanifest="skip">
<zipgroupfileset dir="dist" includes="*.jar"/>
<zipgroupfileset dir="dist/lib" includes="*.jar"/>
<manifest>
<attribute name="Main-Class" value="${main.class}"/>
<attribute name="Implementation-Version" value="${svna.version}"/>
<attribute name="SVN-Revision" value="${svna.version}" />
</manifest>
</jar>
This is the resulting contents of the jar manifest:
Manifest-Version: 1.0
Main-Class: package.Main
Implementation-Version: 384M
SVN-Revision: 384M
The main class extracts it, when given the -v flag, using:
System.out.println("SVN revision : " +Main.class.getPackage().getImplementationVersion() );
HTH.
--
Nigel Wade