Configuración de lanzamiento de Maven con tags svn por module

Gol

Lanzamiento de maven multimodule con tags por module

Situación

Asum la siguiente estructura de proyecto para un proyecto Java basado en Maven:

xx-parent xx-moduleA xx-moduleB xx-moduleC/submodule1 xx-moduleC/submodule2 xx-moduleC/submodule3 

La estructura del proyecto en Subversion es la siguiente:

 xx-parent/trunk xx-moduleA/trunk xx-moduleB/trunk xx-moduleC/trunk/submodule1 xx-moduleC/trunk/submodule2 xx-moduleC/trunk/submodule3 

Mi objective es crear tags por module al realizar una publicación:

 xx-parent/tags/xx-parent-1.0 xx-moduleA/tags/xx-moduleA-1.0 xx-moduleB/tags/xx-moduleB-1.0 xx-moduleC/tags/xx-moduleC-1.0 

En el pasado, cada module se creaba y publicaba por separado. A medida que el proyecto se hizo más grande (30 modules), el time para build una versión aumentó. Me gustaría cambiar el proyecto a una configuration de varios modules para realizar una construcción y lanzamiento del reactor. La construcción no parece ser un problema, pero crear tags por module sí lo es.

El complemento maven-release parece insistir en crear solo una label para todo el proyecto / lanzamiento. Estoy buscando una manera de crear múltiples tags, por ejemplo, una label por module.

Lo que he intentado hasta ahora

  • Creando un alias de Subversion xx-all, que verifica todos los submodules, para poder hacer reference a ellos con <module>../xx-moduleB</module>
  • Habilitando commitByProject , que cometió commit por module, pero no tag por module. Ver
  • Cada module tiene sus propios elementos <scm> en el pom.xml , pero no se usan cuando se realiza una liberación del reactor.
  • mvn --batch-mode -DcommitPerProject=true -DautoVersionSubmodules=true -Drelease.version=1.0.6 release:prepare release:perform

Problemas

  • maven-release-plugin no crea una label svn por module
  • maven-release-plugin sobrescribe la label <scm> con URL inválidas, por ejemplo, tags "trunk" anidadas bajo la label xx-parent

Pregunta

¿Cómo puedo configurar este proyecto con un process de lanzamiento de Maven, un layout de varios modules y aún get tags separadas por module?

Referencias

http://jira.codehaus.org/browse/MRELEASE-261 (Cerrado) y MRELEASE-561 (Abierto)

De acuerdo con Arnaud Héritier (un miembro de Apache Maven PMC),
Maven no puede manejar aplicaciones compuestas como module-A v0.1, module-B v0.3.
Maven considera un proyecto y todos sus submodules como un set único.

ver: http://blog.aheritier.net/maven-release-plugin-2-0/ (9 de junio de 2010)

Tal vez la situación ha cambiado desde Maven 3?