110 votes

Installer le POM parent sans construire les modules enfants

J'ai un POM parent dans un projet Maven, avec cette structure :

             parent
               |
        ---------------
        |             |
      child1       child2

Je veux installer le POM de la "parent" dans le REPO local pour permettre enfant1 prendre quelques changements que j'ai fait dans la gestion des dépendances, mais Je ne peux pas faire une "installation propre" régulière parce que "enfant2" est cassé et ne sera pas construit.

Quelle est la manière correcte de faire cela avec maven (autre que d'aller dans le pom parent et de commenter le fichier "enfant2" ).

181voto

Guillaume Polet Points 31933

Utilisez l'option '-N' dans la commande mvn.

De mvn -h :

-N,--non-récursif Ne pas faire de récursion dans les sous-projets

32voto

carlspring Points 7885

Bien que Guillaume ait effectivement raison et que ce soit la bonne option, je recommanderais personnellement de garder votre parent comme un module séparé.

Je trouve que la meilleure approche pour l'héritage est la suivante :

aggregator
|- module1/ (extends parent)
| |- pom.xml
|- module2/ (extends parent)
| |- pom.xml
|- parent/
| |- pom.xml
|- pom.xml

De cette façon, vous pouvez toujours installer le parent seulement, avec mvn clean install sans options supplémentaires.

Vous pouvez également avoir le parent en dehors de l'agrégateur afin de pouvoir le réutiliser entre plusieurs projets.

Il y a de nombreux avantages à garder le parent et l'agrégateur comme deux choses distinctes. Mais en fin de compte, c'est vous qui choisissez ce qui est le mieux pour votre projet/environnement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X