web-dev-qa-db-fra.com

Que représente la balise parent dans Maven pom?

Par exemple.:

<parent>
    <groupId>mycompany.trade.com</groupId>
    <artifactId>mycompany.trade.</artifactId>
    <version>1.1.1.0-SNAPSHOT</version>
</parent>

Cela signifie-t-il que Maven recherchera le pom parent? Si oui, où, dans quel ordre? Peut être dans le dossier de niveau 1? Ou dans un référentiel local ou en dépôt?

Merci.

45
user710818

Oui, maven lit le POM parent dans votre référentiel local (ou des proxys comme nexus ) et crée un "POM efficace" en fusionnant les informations du parent et du module POM.

Voir aussi Introduction au POM

L'une des raisons d'utiliser un parent est que vous disposez d'un emplacement central pour stocker des informations sur les versions des artefacts, les paramètres du compilateur, etc. qui doivent être utilisés dans tous les modules.

41
stacker

Les dépendances, propriétés, constantes, etc. communes peuvent être définies dans le projet parent central pom.xml

La principale chose importante est que le projet parent ne peut pas être distribué et il ressemble plus à pom.xml normal sauf qu'il packaging tag

    <groupId>com.company.demo</groupId>
    <artifactId>MavenInheritance</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

L'enfant peut maintenant hériter de cela en utilisant

   <parent>
        <groupId>com.company.demo</groupId>
        <artifactId>MavenInheritance</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
4
Vino