Suche…


POM-Struktur

Das Projektobjektmodell ist die Basiseinheit von Maven und definiert die Projektstruktur, Abhängigkeiten usw.

Das Folgende ist sehr gering, um ein POM zu erstellen:

  • project
  • modelVersion - sollte auf 4.0.0
  • groupId - die ID der Projektgruppe
  • artifactId ID - die ID des Artefakts (Projekt)
  • version - Die Version des Artefakts unter der angegebenen Gruppe

groupId , artifactId und version werden Maven-Koordinaten genannt und manchmal mit GAV abgekürzt. Sie identifizieren eindeutig das resultierende Artefakt eines Projekts in einem Maven-Repository (und sollte dies im gesamten Universum tun).

Ein minimales Muster-POM sieht folgendermaßen aus:

<project>
  <modelVersion>4.0.0</modelVersion>

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

POM-Vererbung

Vererbung ist das größte Kapital des POM, wo die folgenden Elemente vom Super-POM bis zum untergeordneten POM verwaltet werden.

  • Abhängigkeiten
  • Entwickler und Mitwirkende
  • Plugin-Listen (einschließlich Berichte)
  • Plugin-Ausführungen mit übereinstimmenden IDs
  • Plugin-Konfiguration

Das Folgende ermöglicht die Vererbung

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

POM-Struktur sieht aus wie

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

Die Module eines Multimodulprojekts werden aus einer hierarchischen Struktur zusammengefasst.

Die Root- pom Packung sollte folgendermaßen aussehen:

<packaging>pom</packaging>

Folgendes wird die Verzeichnisstruktur des Projekts sein:

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

Wurzel-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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow