Apache Maven
POM - Projektobjektmodell
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 auf4.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>