Sök…


POM-struktur

Project Object Model är basenheten i Maven och definierar projektstrukturen, beroenden etc.

Följande är mycket minimala för att skapa en POM:

  • project
  • modelVersion - bör ställas in på 4.0.0
  • groupId - ID för projektets grupp
  • artifactId - artifactId ID (projekt)
  • version - versionen av artefakten under den angivna gruppen

groupId , artifactId och version kallas Maven-koordinater och ibland förkortade med GAV . De identifierar unikt den resulterande artefakten av ett projekt i ett Maven-arkiv (och borde göra det i hela universum).

En minimal POM-prov ser ut som:

<project>
  <modelVersion>4.0.0</modelVersion>

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

POM-ärft

Arv är POM: s största tillgång, där följande kan hanteras från super POM till barn POM.

  • beroenden
  • utvecklare och bidragsgivare
  • pluginlistor (inklusive rapporter)
  • plugin-körningar med matchande ID: er
  • plugin-konfiguration

Följande möjliggör arvet

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

POM-strukturen ser ut

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

Modulerna i ett multimodulprojekt samlas från en hierarkisk struktur.

Root- pom förpackningen ska se ut:

<packaging>pom</packaging>

Följande är projektets katalogstruktur:

 |-- 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
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow