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 el pom.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)

¿Fue útil?

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?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top