Cómo get el número SVN de una sucursal en particular en Maven

Hago SVN check out para un tree de múltiples twigs, y utilizo el plugin buildnumber para get la revisión SVN con el proveedor de implementación "javasvn".

Cuando trato de build una twig en particular, parece que Maven recupera la revisión de la carpeta de nivel superior del tree, no la revisión de esa twig en particular.

Por ejemplo:
número de revisión raíz: 100
número de revisión de root / branch1: 99
número de revisión de root / branch2: 97

En mi caso, cuando construyo branch1, necesito 99 para buildnumber, no 100.

Yo uso SVN 1.7.

Así es como configuro el complemento:

<build> <finalName>${project.artifactId}-${project.version}-SVN${buildNumber}</finalName> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>buildnumber-maven-plugin</artifactId> <executions> <execution> <phase>validate</phase> <goals> <goal>create</goal> </goals> </execution> </executions> <configuration> <doCheck>false</doCheck> <doUpdate>false</doUpdate> <providerImplementations> <svn>javasvn</svn> </providerImplementations> </configuration> </plugin> 

Cualquier idea es muy apreciada.
Gracias

Intente utilizar la configuration useLastCommittedRevision que se configura como falsa de forma pnetworkingeterminada. Esto debería capturar la última revisión comprometida en lugar de la revisión del repository en el module específico desde el cual se crea el pom.

Así es como lo hacemos en nuestro proyecto:

  <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <phase>generate-resources</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <!-- http://stackoverflow.com/questions/3532135/using-maven-to-output-the-version-number-to-a-text-file --> <!-- Safety --> <mkdir dir="${project.build.directory}"/> <exec executable="svn" output="${basedir}/src/main/filters/svn.properties" dir=".."> <arg value="info"/> </exec> <replace file="${basedir}/src/main/filters/svn.properties" token="Last Changed Rev" value="Last.Changed.Rev"/> </tasks> </configuration> </execution> </executions> </plugin> 

Eso genera una línea en src/main/filters/svn.properties que tiene Last.Changed.Rev: 22479 en ella. Cambiamos el nombre de Last Changed Rev a Last.Changed.Rev por lo que es un nombre de variable válido. Luego puede usar eso como filter en otros files. Puede que no lo necesite como filter, pero tal vez este ejemplo lo ayudará a satisfacer sus necesidades.