la configuration de libération Maven avec des balises svn par module
-
24-10-2019 - |
Question
Objectif
multimodule version Maven avec des balises par module
Situation
On suppose que la structure du projet suivant pour un projet basé sur Java Maven:
xx-parent
xx-moduleA
xx-moduleB
xx-moduleC/submodule1
xx-moduleC/submodule2
xx-moduleC/submodule3
La structure du projet dans Subversion est comme suit:
xx-parent/trunk
xx-moduleA/trunk
xx-moduleB/trunk
xx-moduleC/trunk/submodule1
xx-moduleC/trunk/submodule2
xx-moduleC/trunk/submodule3
Mon but est de créer des balises par module lors d'une sortie:
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
Dans le passé, chaque module a été construit et publié séparément. Comme le projet a augmenté de plus grands modules (30), le temps de construire une libération accrue. Je voudrais changer le projet à un multi-modules mis en place pour effectuer une nouvelle génération de réacteur et la libération. Bâtiment ne semble pas être un problème, mais la création de balises par module est.
Le-release-plugin Maven semble insister sur faire une seule balise pour l'ensemble du projet / release. Je cherche un moyen de créer plusieurs balises, par exemple une étiquette par module.
Ce que j'ai essayé jusqu'à présent
- Création d'un xx-tout alias Subversion, qui vérifie tous les sous-modules, donc je peux les référencer avec
<module>../xx-moduleB</module>
- Activation commitByProject , qui ne commit par module, mais pas étiquette par module. Voir
- Chaque module a ses propres éléments de
<scm>
dans lepom.xml
, mais ils ne sont pas utilisés lors d'une sortie du réacteur. -
mvn --batch-mode -DcommitPerProject=true -DautoVersionSubmodules=true -Drelease.version=1.0.6 release:prepare release:perform
Problèmes
- maven-release-plugin ne crée pas de balise svn par module
- maven-release-plugin remplace la balise
<scm>
avec des URL non valides, par exemple imbriqué "tronc" -Tags sous la balise xx-parent
Question
Comment puis-je mettre en place ce projet avec un processus de libération Maven, une mise en page multi-module et obtenez toujours séparés par des balises module?
Références
http://jira.codehaus.org/browse/MRELEASE-261 (fermé) et MRELEASE- 561 (ouvert)
La solution
Selon Arnaud Héritier (membre de PMC Apache Maven),
Maven ne peut pas gérer des applications composites comme module A v0.1, v0.3 module B.
Maven envisager un projet et tous ses sous-modules comme un ensemble unique.
voir: http://blog.aheritier.net/maven-release-plugin- 2-0 / (9 Juin 2010)
Peut-être que la situation a changé depuis avec Maven 3?