Java: Build-Automatisierung mit Maven

Das Project Object Model

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Das Project Object Model ist das Herz jedes Maven-Projekts. Es ist ein XML-Standard, der Phasen, Abhängigkeiten, Ziele etc. festlegt.

Transkript

Im Zentrum jedes Projekts steht das Project Object Model oder kurz POM. Wir wollen uns in diesem Video etwas genauer ansehen, was sich dahinter verbirgt und welche Auswirkungen ein solches Modell auf ein Maven-Projekt hat. Die Abkürzung POM steht, wie gesagt, für Project Object Model. Damit werden eine Reihe von Standards beschrieben, einen Lebenszyklus, ein Abhängigkeitsverwaltungssystem und gewisse Logik. In dieser Logik kann man Ziele ausführen: Ziele, beispielsweise wie das Erstellen eines Projekts, aber auch das Testen oder das Deployen, entspricht das Ausliefern. Und es gibt definierte Phasen in jedem dieser Lebenszyklen. Dieses Modell hat einige Konsequenzen. Beispielsweise werden Projekte immer mit einem Standardverhalten eingerichtet. Ein vorgegebenes Verhalten erleichtert natürlich die Arbeit gewaltig. Es gibt auch gewisse vorgegebene Strukturen. QuellCode muss sich beispielsweise in der Regel in einem Source-Ordner befinden, in einem Source- und dort in einem main-Ordner. Resourcen, die noch zusätzlich benötigt werden, befinden sich in einem anderen Ordner. Für Testfälle, also für Unit Testing gibt es in der Regel einen speziellen Ordner, oft "Test" genannt. Und der Zielordner führt die endgültige JAR-Datei oder auch andere Formate, wird in der Regel "Target" genannt. Das ist auch ein spezieller Ordner, der von dieser Projektstruktur vorgegeben wird. Die XML-Datei, diese POM-Datei, die das alles vorgibt, die wird sich in dem Root-Verzeichnis des Projekts befinden. Schauen wir uns mal so eine generierte Struktur an, wie sie von Maven über ein Standardverhalten angelegt wird. Das Projekt hier heißt "calculator", und Sie haben einen Source-Ordner, darin den Main-Ordner. Dort gibt es Java-Datei. Ganz offensichtlich sehen Sie hier eine Paketstruktur. Wir haben einen Resourcen-Ordner, wir haben einen Test-Ordner und wir haben einen Target-Ordner. Und hier sehen Sie die POM-Datei, die, wenn man die Dateierweiterung anzeigt, noch XML als Extension dran stehen hat. Hier sehen das mal direkt im Arbeitsplatz. Diese immer gleiche Struktur von Resourcen von Ordnern erlaubt es, Entwickler sich auf die Logik des Programmes zu konzentrieren. Entwickler programmieren Ihr "Ding" (in Anführungszeichen) und Maven kümmert sich um den Rest. So eine XML-Datei enthält eine Projektbeschreibung, einen eindeutigen Satz sogenannter "Koordinaten", Projektattribute, eine Projektlizenz in der Regel, die Projektversion, Angaben zum Autor eines Programmes beziehungsweise der Mitwirkenden an diesem Projekt und ganz wichtig eine Liste mit Abhängigkeiten, also Dingen, die in diesem Projekt noch mitbenutzt werden. Schauen wir uns das mal konkret mit XML-Code an. Hier ist ein Beispiel, ein Auszug aus so einer POM-Datei. Sie sehen, dass hier eine gewisse Gruppierung vorgenommen wird. Dazu gibt es hier diese "artifact"-ID. Das ist der Name des Programms, die Art, wie es gepackt wird. "jar" ist Vorgabe. Es gibt auch andere Möglichkeiten. Die Version einer Beschreibung. Der Name, wie es da ausgegeben wird. Eine URL. Und hier haben Sie Abhängigkeiten. Beachten Sie, dass einige dieser Texte optional sind, beispielsweise die Beschreibung. Andere sind hingegen verpflichend. Und Maven wird automatisch diese Texte anlegen, wenn Sie ein Maven-Projekt erzeugen. Bemerkenswert sind diese drei Sterne hier. Die Texte, die hier auftauchen, müssen zusammengenommen eine eindeutige Kennung ergeben. Wenn man etwa eine zweite Version eines Programms erzeugen möchte, dann ändert man nur die Versionsnummer hier. Der Rest bleibt gleich. Darüber erreicht man bereits die Eindeutigkeit. Mit dieser Projektobjektmodellstruktur haben Sie, wie gesagt, ein wunderbares Abhängigkeitsmanagement. Sie können entfernte Repositorys mitinkludieren. Sie erreichen eine universelle Wiederverwendung der Konstruktionslogik. Sie habe eine Unabhängigkeit von speziellen Tools und können damit ein Projekt importieren. Insbesonder haben IDEs eine vorgegebene Struktur, wo Sie Informationen finden, das heißt, netbeans, eclipse, oder so finden die notwendigen Strukturen immer an den gleichen Stellen. Das macht es sehr einfach, Maven-Projekte mit verschiedenen Tools zu bearbeiten, weiterzugeben und ähnliche Sachen. Und die allgemeine Suche und Filterung von Projektbestandteilen wird damit natürlich auch erleichtert. Diese POM-Struktur ist also das Herz der gesamten Maven-Logik, und in diesem Video haben wir uns angesehen, was das genau bedeutet.

Java: Build-Automatisierung mit Maven

Meistern Sie große Softwareprojekte mit dem leistungsstarken Automatisierungstool.

1 Std. 33 min (29 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:20.12.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!