Von Andre Dirr auf Freitag, 02. Juli 2021
Kategorie: Application Development

Das Wildfly Maven Plugin - Wie man wilde Fliegen in den Build-Prozess integriert

In vielen Entwicklungsprojekten kommt das Java-basierte Build-Management-Tool Maven von der Apache Software Foundation zum Einsatz.

Wird daneben der freie Application Server Wildfly verwendet, der die Grundlage der kommerziellen JBoss Enterprise Application Platform (JBoss EAP) von Red Hat bildet, so möchte ich heute passend dazu ein kleines Helferlein vorstellen: Das Wildfly Maven Plugin.

Mithilfe des Wildfly Maven Plugins besteht die Möglichkeit, den Application Server in den Build-Prozess zu integrieren, und so von dort aus zu steuern.

Wildfly Maven: Voraussetzung und Bezug des Plugins  

Für die Benutzung wird mindestens Java in der Version 8 und Maven in der Version 3.3.1 vorausgesetzt.

Die Erweiterung muss nicht explizit heruntergeladen und installiert werden, denn dies erledigt Maven dynamisch bei der ersten Verwendung für uns.

Einbindung in pom.xml

Die Aktivierung des Plugins ist recht simpel und wird durch folgenden Eintrag in der pom.xml innerhalb des Abschnitts <plugins> vorgenommen:  

Deployment von Artefakten  

Grundsätzlich existieren mehrere Wege, um mit Maven gebaute Artefakte auf einem Application Server zu deployen:

  • per Hand oder passendem Skript in das entsprechende Verzeichnis kopieren
  • über die Management-Konsole des Servers
  • über Plugins aus der Entwicklungsumgebung heraus
  • oder aber von der Kommandozeile mit dem Wildfly Maven Plugin

Die wohl am häufigsten verwendete Funktion des Plugins ist daher sicher das Deployment von Artefakten auf dem Wildfly Application Server. Dies geschieht mit Hilfe des Maven Goals „wildfly:deploy" .

Das Kommando im Terminalfenster sieht dann so aus:

mvn wildfly:deploy

Ähnlich funktioniert der Befehl für ein erneutes Deployment. Dies wird allerdings nur ausgeführt, wenn die Anwendung zuvor schon auf dem Application Server vorhanden war.

mvn wildfly:redeploy

Genauso einfach ist es natürlich auch möglich, Anwendungen wieder vom Server zu entfernen.

mvn wildfly:undeploy

Server starten und stoppen

Eine weitere administrative Tätigkeit ist das Starten und Stoppen des Application Servers. Natürlich lässt sich dies auch über die mit dem Wildfly mitgelieferten Skripte erledigen, aber gerade für die Einbindung in automatische Nightly Builds, oder für Entwickler, die gerne auf der Kommandozeile arbeiten, eignen sich diese Funktionen besonders gut.

Ein Start des Application Servers wird über folgendes Kommando angestoßen:

mvn wildfly:start

Dabei startet das Plugin den Server, der in der Umgebungsvariablen wildfly.home gesetzt ist. Es besteht so also die Möglichkeit, den zu startenden Server selbst zu wählen.

Ist die Variable nicht gesetzt, so lädt das Plugin die aktuelle Version des Wildfly aus dem Internet und startet diesen. Zum aktuellen Zeitpunkt ist das die Version 23.0.2 .

Eine praktische Eigenschaft dieser Funktionalität.

Genau so einfach, wie der Server über ein Maven Goal gestartet werden kann, lässt er sich auch wieder stoppen.

mvn wildfly:shutdown

Sonstige Möglichkeiten 

Dies sind aber längst noch nicht alle Möglichkeiten, die das Wildfly Maven Plugin bietet, denn darüber hinaus bestehen noch weitere Möglichkeiten, wie das Hinzufügen von Ressourcen zu einem laufenden Server - zum Beispiel eine Datasource, oder das Ausführen von in CLI- (Command Line Interface) formatierten Kommandos oder Skripten. Dies soll aber nicht Bestandteil dieses Artikels sein.

Einen kompletten Überblick über alle Goals mit ausführlichen Beispielen findet sich auf der Internetseite des Plugins, die eingangs schon erwähnt wurde [https://docs.jboss.org/wildfly/plugins/maven/latest/index.html ].

Eclipse-Einbindung 

Natürlich gibt es die Möglichkeit für Entwickler, das vorgestellte Plugin in die verwendete Entwicklungsumgebung einzubauen und von dort aus zu bedienen. Dies geschieht dann über die Maven-Integration z.B. in Eclipse per Kontextmenü „Maven" des jeweiligen Projekts.

Allerdings gibt es für diese Zwecke bessere Möglichkeiten mit eigenen Views, die als Eclipse Plugin über den Marketplace bezogen und installiert werden können. Allen voran seien hier die JBoss Tools erwähnt.

Wildfly Maven: Kein Hexenwerk 

Alles in allem ist das Wildfly Maven Plugin ein nettes, kleines Tool, das einiges an Funktionalität mit sich bringt und wie so häufig ist das alles kein Hexenwerk, wenn man erst einmal weiß, dass es dieses Plugin gibt und wie es benutzt wird.

Ich selbst habe es schätzen gelernt und möchte es nicht mehr missen. Auch wenn es mit der Entwicklung des Plugins derzeit nicht weiterzugehen scheint, erfüllt das Wildfly Maven Plugin seine Zwecke und ist durchaus auch für den produktiven Einsatz geeignet.

Aktuell ist die Version 2.1.0 (Beta) und die letzte Änderung am Projekt gab es im Dezember 2019. Seit 1,5 Jahren gab es also kein Update mehr, aber es läuft sehr stabil und erfüllt meine Zwecke in Entwicklungsprojekten.

Vielleicht werkelt ja auch in Ihrer Build-Pipeline schon bald dieses kleine Helferlein.

Kommentare hinterlassen