Ricerca…


Struttura POM

Project Object Model è l'unità di base di Maven e definisce la struttura del progetto, le dipendenze, ecc.

Quanto segue è molto minimale per creare un POM:

  • radice del project
  • modelVersion - dovrebbe essere impostato su 4.0.0
  • groupId : l'ID del gruppo del progetto
  • artifactId : l'ID dell'oggetto (progetto)
  • version - la versione della risorsa sotto il gruppo specificato

groupId , artifactId e version sono chiamate coordinate di Maven e talvolta abbreviate con GAV . Identificano univocamente l'artefatto risultante di un progetto in un repository Maven (e dovrebbero farlo nell'intero universo).

Un POM di esempio minimo assomiglia a:

<project>
  <modelVersion>4.0.0</modelVersion>

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

Eredità POM

L'ereditarietà è la principale risorsa del POM, in cui è possibile gestire quanto segue da super-POM a POM figlio.

  • dipendenze
  • sviluppatori e contributori
  • elenchi di plug-in (inclusi i report)
  • esecuzioni di plugin con id corrispondenti
  • configurazione del plugin

Quanto segue abilita l'ereditarietà

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

La struttura POM sembra

<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>

Aggregazione POM

I moduli di un progetto multi-modulo sono aggregati da una struttura gerarchica.

L'imballaggio del pom dovrebbe essere simile a:

<packaging>pom</packaging>

Quanto segue sarà la struttura della directory del progetto:

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

Root POM:

<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
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow