/** * This Ant task extracts the current SVN revision number, and sets a * corresponding svn.revision property. */ import org.apache.tools.ant.Task; import org.apache.tools.ant.BuildException; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.wc.SVNWCClient; import org.tmatesoft.svn.core.wc.SVNInfo; import org.tmatesoft.svn.core.wc.SVNRevision; public class MySVNInfo extends Task { private String revisionProperty; public void setRevisionproperty (final String property) { this.revisionProperty = property; } public void execute () throws BuildException { if (revisionProperty == null) return; String revision; try { revision = getInfo().getCommittedRevision().toString(); } catch (SVNException e) { revision = "UNKNOWN"; } getProject().setProperty(revisionProperty, revision); } private SVNInfo rootInfo; private SVNInfo getInfo () throws SVNException { if (rootInfo == null) { final SVNWCClient client = new SVNWCClient (null, null); rootInfo = client.doInfo(getProject().getBaseDir(), SVNRevision.WORKING); } return rootInfo; } }