Installer le POM parent sans créer de modules enfants


115

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

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

Je veux installer le POM du "parent" dans le REPO local pour permettre à child1 de prendre certaines modifications que j'ai faites dans le dependencyManagement, mais je ne peux pas faire une "installation propre" régulière parce que "child2" est cassé et ne sera pas construit.

Quelle est la bonne façon de faire cela avec maven (autre que d'aller au pom parent et de commenter le module "child2" ).

Réponses:


191

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

De mvn -h:

-N, - non récursif Ne pas récurer dans les sous-projets


1
L'option '-N' ou '--non-recursive' signifie ne pas récurer dans les sous-projets.
STB Land

36

Bien que Guillaume ait effectivement raison et que ce soit la bonne option, je recommanderais personnellement de garder votre parent comme 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 uniquement, mvn clean installsans 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, vous choisissez ce qui est le mieux pour votre projet / environnement.


1
J'ai lutté avec ce problème pendant des heures et j'ai découvert que certains projets fonctionnaient de cette façon, tels que Apache Sling, JackRabbit et Artifactory.
accuya

Il a isolé l'héritage du module maven (dépendances, propriétés, etc.) de la construction par lots (modules enfants).
Danubian Sailor

4
Est-ce considéré comme une bonne pratique? Des blogs ou autres sur cette approche?
Traîneau

1
@ArtB Êtes-vous tombé sur un tel article entre-temps?
Tomislav Nakic-Alfirevic

4
@MaximilianSchulz: Il n'y a pas de monde parfait, comme on dit ... Ce n'est qu'une option pour le faire.
carlspring
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.