Das Build-Tool Maven in der Praxis

Der Build-Freak

Stefan Kleineikenscheidt

In Software-Projekten müssen Quelltexte, Konfigurations- und andere Dateien zu einem fertigen, installierbaren Paket zusammengebaut werden. Obwohl IDE-Hersteller dafür Funktionalität in ihren Produkten bereitstellen, werden in vielen Projekten skriptbasierte Build-Werkzeuge wie Make oder Ant eingesetzt. Das neueste Open-Source-Werkzeug auf diesem Markt ist Maven, das die klassischen Build-Skripte durch eine Projektkonfigurationsdatei ersetzt und zusätzlich eine Reihe nützlicher Features zur Projektsteuerung anbietet.

Mit Build-Werkzeugen wie Make und Ant werden wiederkehrende Aufgaben beim Build von Software-Paketen automatisiert: Kompilierung, Ausführung von Unit-Testing, Paketierung, etc. Dafür wird beim Aufsetzen eines Projektes ein Skript erstellt in dem die einzelnen Schritte definiert sind. Der Build wird dann durch die Ausführung des Skriptes angestoßen. Für Java-Projekte hat sich seit der Veröffentlichung Anfang 2000 Ant durchgesetzt – zum einen wegen seiner Plattformunabhängigkeit, zum anderen durch zahlreiche mitgelieferte Funktionen, so genannte Tasks, die auf die Java-Entwicklung zugeschnitten sind.Maven geht noch einen Schritt weiter. Es wird davon ausgegangen, dass der Build-Prozess in den meisten Projekten ähnlich ist und nicht jedes Mal neu programmiert werden muss. Die Build-Skripte werden daher durch mitgelieferte Plug-ins und die Projektkonfiguration – das so genannte Project Object Model (POM) – ersetzt. Die Plug-ins enthalten die eigentliche Build-Funktionalität für Kompilierung, Paketierung und Unit-Testing etc. Das POM wird in einer XML-Datei definiert und enthält alle Informationen, die die Plug-ins zur Build-Zeit benötigen. Zudem verwaltet Maven die Abhängigkeiten eines Projekts von Drittbibliotheken (sog. Dependencies) in einem Repository und generiert Dokumentation und Metriken über die Code-Qualität. (vgl. Abb. 1, 2 und 3).

Abb. 2: Maven Website (hier: der JUnit-Testreport)
Geschrieben von
Stefan Kleineikenscheidt
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.