# Erläuterung der Maven Projekt Datei (pom.xml) Das Maven Projekt wird in einem XML Dokument beschrieben welches das Projekt Objekt Modell (pom) beschreibt. ## Rahmen der pom.xml Der Anfang und die letzte Zeile eines jeden Maven Projekts ist eigentlich immer gleich. In der ersten Zeile wird die Formatierung und das Encoding der Datei angegeben: ``` ``` Der oberste Knoten (und der modelVersion Knoten darunter) ist immer wie folgt: ```xml 4.0.0 ``` In der Zukunft ändern die Entwickler ggf. etwas an dem Format, so dass sich die Modellversion ändert, aber bis dahin bleiben diese Elemente unverändert. ## Eindeutige Identifizierung eines Projektes Jedes Projekt sollte sich eindeutig über eine groupId, artefactId und version identifizieren lassen. ```xml de.kneitzel javafxapp 1.0-SNAPSHOT ``` **Wichtig**: Wenn Du das Template nutzt, solltest Du die bereits gesetzten Daten anpassen. **Optional**: In dem Projekt kann auch die Organisation angegeben werden. ```xml Java Forum ``` **Wichtig**: Bitte entferne diese Zeilen oder passe die Organisation an. ## Properties Properties sind vergleichbar zu Variablen und können dazu genutzt werden, Dinge zusammen zu fassen, die sich öfters ändern könnten. Ich dem Template sind die Properties in mehrere Abschnitte unterteilt. ### Application properties In diesem Abschnitt sind die Eigenschaften der Anwendung selbst zu finden. Dies können vorgegebene Namen sein oder einfach der Klassenname der Hauptklasse zum Starten der Anwendung. ### Dependency versions Alle Versionen von Abhängigkeiten der Anwendung werden in diesem Abschnitt gesammelt. ### Plugin versions Die Versionen von Plugin finden sich in diesem Abschnitt. ### Other properties Alles, was in keinen der bereits genannten Abschnitte fällt, findet sich dann in diesem Abschnitt. Die Abschnitte, die danach kommen, werden in eigenständigen Dokumenten beschrieben und wären: - **dependencies** Alle Abhängigkeiten der Anwendung werden hier aufgeführt. - **build/plugins** Die Plugins mit ihrer Konfiguration finden sich in diesem Bereich - **profiles** In dem Projekt nutze ich auch ein Profil zur Erstellung von Images.