Zoeken…


POM-structuur

Project Object Model is de basiseenheid van Maven en definieert de projectstructuur, afhankelijkheden, etc.

Het volgende is zeer minimaal om een POM te maken:

  • project root
  • modelVersion - moet worden ingesteld op 4.0.0
  • groupId - de ID van de projectgroep
  • artifactId - de ID van het artefact (project)
  • version - de versie van het artefact onder de opgegeven groep

groupId , artifactId en version worden Maven-coördinaten genoemd en soms afgekort met GAV . Ze identificeren op unieke wijze het resulterende artefact van een project in een Maven-repository (en zouden dat in het hele universum moeten doen).

Een minimale voorbeeld POM ziet eruit als:

<project>
  <modelVersion>4.0.0</modelVersion>

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

Overerving van POM

Overerving is het grootste voordeel van de POM, waarbij het volgende kan worden beheerd van super POM tot onderliggende POM.

  • afhankelijkheden
  • ontwikkelaars en medewerkers
  • plug-in lijsten (inclusief rapporten)
  • plug-in uitvoeringen met overeenkomende id's
  • plug-in configuratie

Het volgende schakelt de overerving in

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

POM-structuur ziet eruit

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

POM-aggregatie

De modules van een multimodule-project worden geaggregeerd vanuit een hiërarchische structuur.

De root pom pakking moet er als volgt uitzien:

<packaging>pom</packaging>

Het volgende zal de mappenstructuur van het project zijn:

 |-- 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow