web-dev-qa-db-fra.com

Installer le POM parent sans créer de modules enfants

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 prend quelques modifications que j'ai faites dans le dependencyManagement, mais je ne peux pas faire une "installation propre" régulière car "child2" est cassé et ne construira pas.

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

110
Mr.Eddart

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

De mvn -h:

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

177
Guillaume Polet

Bien que Guillaume ait effectivement raison et que ce soit la bonne option, je recommanderais personnellement de garder votre parent en tant que 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, 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.

Garder le parent et l'agrégateur comme deux choses distinctes présente de nombreux avantages. Mais au final, vous choisissez ce qui convient le mieux à votre projet/environnement.

32
carlspring