Automatisiertes "Builden" einfach gemacht
Einführung
Für die Produktivsetzung, Tests oder auch beim Einsatz von Continuous Integration [1] werden bei Java-Applikationen WAR-, EAR- bzw. JAR-Archive benötigt. In der Regel bieten Entwicklungsumgebungen entsprechende Funktionalitäten zur manuellen Erzeugung der Archive an. Diese Archive werden auf den Zielsystemen wie bspw. einem Applikation-Server eingespielt.
Insbesondere bei größeren Software-Projekten sollte es aber auch die Bestrebung geben einen automatisierten Build-Prozess aufzusetzen.
Umsetzung
In der Java-Welt stehen hierfür unter anderem Buildwerkzeuge wie ANT [2] oder Maven [3] zur Verfügung. Wenn es allerdings an komplexere Sachen wie EJB 2.1 Generierungen oder spezifische Erweiterungen für Produkte geht, ist die Erstellung dieser Skripte aufwändig. Im konkreten Projekt stand solch ein Fall im Bereich Weblogic Portal an. Oracle bietet für die Erstellung der Build-Skripte entsprechenden Support [4][5]. Doch die Vergangenheit hat gezeigt, dass die generierten Build-Dateien zumindest im Portal-Umfeld nicht funktionieren und mit einem relativ hohen Aufwand nachbearbeitet werden mussten.
Mit der Entdeckung des Projektes headlesseclipse [6] lösten sich die Befürchtungen auf, einen hohen Aufwand für die Erstellung eines automatisierten Build-Prozesses investieren zu müssen. headlesseclipse ist ein Eclipse-Plugin, das per Kommandozeile den Build von Archiven analog zum manuellen Oberflächenmodus startet. Durch die Mitgabe von Parametern ist eine entsprechende Steuerung möglich. Die Installation ist denkbar einfach und es muss lediglich die heruntergeladene JAR-Datei im Eclipse-Plugin Verzeichnis platziert werden.
Der Aufruf zur Erzeugung der in der Entwicklungs-Umgebung befindlichen EAR-Projekte sieht folgendermaßen aus:
eclipse -nosplash -data d:\projects\TimesheetApp -application com.ind.eclipse.headlessworkspace.Application exportears
Ergebnis sind im konkreten Fall drei EAR-Archive für das Portal, das Backend sowie für den automatisierten Test. Zur Überraschung aller ließen sich die drei Archive fehlerfrei installieren und selbst die Meta-Informationen für die SVN-Versionsverwaltung wurden dank des Subclipse-Plugins bei der Erstellung exkludiert.
Fazit
headlesseclipse bietet eine erfreulich einfache Möglichkeit, um mit der Entwicklungsumgebung Eclipse sehr schnell und automatisiert Java-Archive erzeugen können. Schön wäre lediglich noch die Erweiterung um eine Log-Datei, die entsprechende Informationen über die Fortschritte bzw. Fehlerfälle protokolliert.
Müssen im Build-Prozess noch individuelle Anpassungen vorgenommen werden, wie bspw. das Setzen von Properties in Abhängigkeit von der Zielumgebung, bieten natürlich Werkzeuge wie ANT und MAVEN einen entsprechenden Vorteil.
Links
[1] http://en.wikipedia.org/wiki/Continuous_integration
[2] http://ant.apache.org/
[3] http://maven.apache.org/
[4] http://download.oracle.com/docs/cd/E12840_01/wlw/docs103/guide/ideuserguide/build/conUseCustomAntBuild.html
[5] http://weblogic-wonders.com/weblogic/2010/02/12/how-to-auto-generate-build-xml-file/
[6] http://code.google.com/p/headlesseclipse/