Was ist pom?

Projektobjektmodell (POM)

Das Projektobjektmodell (POM) ist eine XML-Datei, die Informationen über ein Maven-Projekt enthält und zur Konfiguration des Build-Prozesses verwendet wird. Es ist im Wesentlichen das Herzstück von Maven und beschreibt das Projekt, seine Abhängigkeiten, Build-Konfigurationen und vieles mehr.

Wichtige Elemente:

  • project: Das Root-Element der POM-Datei.

  • modelVersion: Die Version des POM-Schemas. Aktuell ist meist 4.0.0.

  • groupId: Der eindeutige Bezeichner der Organisation oder Gruppe, die das Projekt erstellt hat. Mehr dazu unter GroupId.

  • artifactId: Der eindeutige Name des Projekts innerhalb der groupId. Mehr dazu unter ArtifactId.

  • version: Die Version des Projekts. Mehr dazu unter Version.

  • packaging: Der Typ des zu erstellenden Artefakts (z.B. jar, war, pom). Mehr dazu unter Packaging.

  • name: Ein lesbarer Name für das Projekt.

  • description: Eine kurze Beschreibung des Projekts.

  • url: Die URL der Projekt-Website.

  • dependencies: Eine Liste der Abhängigkeiten des Projekts. Mehr dazu unter Abhängigkeiten. Jede Abhängigkeit besteht aus groupId, artifactId und version. Maven lädt die benötigten Abhängigkeiten automatisch herunter.

  • build: Enthält Informationen zum Build-Prozess, einschließlich der zu verwendenden Plugins und deren Konfiguration. Mehr dazu unter Build-Prozess.

  • properties: Definiert benutzerdefinierte Eigenschaften, die im gesamten POM verwendet werden können.

  • repositories: Definiert die Remote-Repositories, aus denen Maven Abhängigkeiten herunterladen kann. Mehr dazu unter Repositories.

  • distributionManagement: Enthält Informationen zum Deployment des Projekts, z.B. in ein Maven-Repository. Mehr dazu unter DistributionManagement.

Zweck:

Die POM-Datei dient als zentrale Konfigurationsdatei für Maven. Sie ermöglicht es Maven, das Projekt zu verstehen, seine Abhängigkeiten zu verwalten, den Build-Prozess zu steuern und das Artefakt zu deployen. Indem die Build-Konfiguration in einer standardisierten XML-Datei definiert wird, können Projekte einfach zwischen verschiedenen Umgebungen übertragen und von verschiedenen Entwicklern bearbeitet werden.