Configuración de lanzamiento de Maven con etiquetas SVN por módulo
-
24-10-2019 - |
Pregunta
Meta
Liberación multimódulo de Maven con etiquetas por módulo
Situación
Suponga la siguiente estructura del 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 la subversión 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 objetivo es crear etiquetas por módulo al realizar un lanzamiento:
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 módulo fue construido y lanzado por separado. A medida que el proyecto se hizo más grande (30 módulos), aumentó el tiempo para construir una liberación. Me gustaría cambiar el proyecto a una configuración de múltiples múltiples para realizar una compilación y lanzamiento de un reactor. La construcción no parece ser un problema, pero crear etiquetas por módulo es.
El Maven-Lelease-Plugin parece insistir en hacer solo una etiqueta para todo el proyecto/lanzamiento. Estoy buscando una manera de crear varias etiquetas, por ejemplo, una etiqueta por módulo.
Lo que he probado hasta ahora
- Creación de un alias de subversión XX-ALL, que verifica todos los submódulos, para que pueda hacer referencia a ellos con
<module>../xx-moduleB</module>
- Habilitador commitByProject, que cometió por módulo, pero no etiqueta por módulo. Ver
- Cada módulo tiene el suyo
<scm>
elementos en elpom.xml
, pero no se usan al realizar una liberación de reactor. mvn --batch-mode -DcommitPerProject=true -DautoVersionSubmodules=true -Drelease.version=1.0.6 release:prepare release:perform
Problemas
- Maven-Lelease-Plugin no crea una etiqueta SVN por módulo
- Maven-Lelease-Plugin sobrescribe el
<scm>
Etiqueta con URL no válidas, por ejemplo, "tronco" anidada -tags bajo la etiqueta de XX-Parrent
Pregunta
¿Cómo puedo configurar este proyecto con un proceso de lanzamiento de Maven, un diseño de múltiples módulos y aún obtener etiquetas separadas por módulo?
Referencias
http://jira.codehaus.org/browse/mRelease-261 (Cerrado) y Mrelease-561 (abierto)
Solución
Según Arnaud Héritier (miembro de PMC de Apache Maven),
Maven no puede manejar aplicaciones compuestas como Module-A V0.1, Module-B V0.3.
Maven considere un proyecto y todos sus submódulos como un conjunto único.
ver: http://blog.aheritier.net/maven-release-plugin-2-0/ (9 de junio de 2010)
¿Quizás la situación cambió desde Maven 3?