Recherche…


Structure POM

Project Object Model est l'unité de base de Maven et définit la structure du projet, les dépendances, etc.

Les éléments suivants sont très minimes pour créer un POM:

  • racine du project
  • modelVersion - devrait être mis à 4.0.0
  • groupId - l'ID du groupe du projet
  • artifactId - l'ID de l'artefact (projet)
  • version - la version de l'artefact sous le groupe spécifié

groupId , artifactId et version sont appelés coordonnées Maven et parfois abrégés avec GAV . Ils identifient de manière unique l'artefact résultant d'un projet dans un référentiel Maven (et devraient le faire dans tout l'univers).

Un exemple de POM minimal ressemble à:

<project>
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.sample</groupId>
  <artifactId>sample-app</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

Héritage POM

L'héritage est le principal atout du POM, où les éléments suivants peuvent être gérés, du super POM au POM enfant.

  • dépendances
  • développeurs et contributeurs
  • listes de plugins (y compris les rapports)
  • exécutions de plugin avec les identifiants correspondants
  • configuration du plugin

Ce qui suit permet l'héritage

  <parent>
    <groupId>com.sample</groupId>
    <artifactId>sample-app-parent</artifactId>
    <version>1.0.0</version>
  </parent>

La structure de POM ressemble à

<project>
  <parent>
    <groupId>com.sample</groupId>
    <artifactId>sample-app-parent</artifactId>
    <version>1.0.0</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sample</groupId>
  <artifactId>sample-app</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

Agrégation POM

Les modules d'un projet multi-modules sont agrégés à partir d'une structure hiérarchique.

Le pom racine devrait ressembler à:

<packaging>pom</packaging>

La structure de répertoire du projet sera la suivante:

 |-- sample-app
  \   `-- pom.xml
   |-- sample-module-1
   |   `-- pom.xml
   |-- sample-module-2
   |   `-- pom.xml

POM racine:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sample</groupId>
  <artifactId>sample-app</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
 
  <modules>
    <module>sample-module-1</module>
    <module>sample-module-2</module>
  </modules>
  <dependencyManagement>
    ...
  </dependencyManagement>
</project>


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow