GWT SuperDevMode einrichten

GWT Codeserver

Das Plugin-Sterben geht um im GWT-Land. In Firefox 27 fiel das DevMode-Plugin vor kurzem überraschend weg, für Chromes Plugin ist das baldige Ende angekündigt und mit dem Internet Explorer will mangels vernünftiger Entwickler-Tools niemand arbeiten.

Aber das ist alles halb so wild. Early Adopter konnten bereits in den letzten GWT-Versionen den neuen SuperDevMode testen. Dieser kommt komplett ohne Plugins aus und erzeugt stattdessen JavaScript-Code mit ein paar kleinen Anpassungen um die Entwicklung zu vereinfachen. Inzwischen ist dieser ausgereift genug um ihn auch dauerhaft als Ersatz für den klassischen DevMode einsetzen zu können. Leider ist die offizielle Dokumentation etwas kompliziert gehalten, wir zeigen daher in einem kurzen Tutorial wie Sie den GWT-SuperDevMode in Eclipse einrichten.

1. Modul-Konfiguration anpassen

Öffnen Sie zunächst die .gwt.xml-Datei Ihrer Anwendung und fügen Sie dort folgende Zeilen ein um den SuperDevMode zu aktivieren:

<add-linker name="xsiframe"/>
<set-configuration-property name="devModeRedirectEnabled" value="true"/>

2. Anwendung kompilieren

Als nächstes muss die Anwendung von GWT neu kompiliert werden, da die erzeugten JavaScript-Dateien um SuperDevMode-Unterstützung erweitert werden müssen. Diese Unterstützung landet zwar später auch im an die Endanwender ausgelieferten JavaScript-Code, ist aber harmlos und nützt ohne Zugriff auf den Original-Java-Code sowieso nichts.

Je nach Aufbau der Anwendung kann der Compiler direkt in Eclipse angestoßen werden (Rechtsklick aufs Projekt > Google > GWT Compile) oder muss per Build-Script gestartet werden.

3. gwt-codeserver.jar hinzufügen

Leider fügt Googles Eclipse-Plugin die JAR mit den vom SuperDevMode benötigten Klassen nicht automatisch Projekten hinzu. Das muss daher manuell nachgeholt werden. Die passende Datei “gwt-codeserver.jar” finden Sie im GWT-SDK und fügen sie einfach dem Build-Path des Projektes hinzu.GWT Codeserver

4. Run Configuration anlegen

Jetzt fehlt in Eclipse nur noch eine Run Configuration. Öffnen Sie dazu die entsprechende Maske (Run > Run Configurations) und legen dort eine neue “Java Application”-Konfiguration an. Unter “Project” tragen Sie das auszuführende Projekt und unter “Main class” die aus gwt-codserver.jar bezogene Klasse “com.google.gwt.dev.codeserver.CodeServer” ein.Run Configuration

Unter “Arguments” muss danach, noch angegeben werden welches GWT-Modul gestartet werden soll und wo der Quellcode zu finden ist. Im Screenshot ist ein Beispiel zu sehen, wie dies für eines unserer Projekte aussieht.

5. Codeserver starten

Danach kann die gerade angelegte Run Configuration für den Codeserver per Klick auf “Run” gestartet werden. Das dauert etwas länger als der Start des bisherigen DevModes, dafür fallen nachher die störender “Hänger” im Browser weg und die Anwendung reagiert fast so schnell wie im Produktivbetrieb.

6. Bookmarks anlegen

Nach dem Start des Codeservers sollte in der Konsole die Zeile “Next, visit: http://localhost:9876/” auftauchen. Öffnen Sie die URL in einem Browser und ziehen Sie die beiden Bookmarklets in die Favoritenleiste.

7. Webserver starten

Im vorletzten Schritt muss jetzt noch der Webserver auf dem die Anwendung läuft gestartet werden. Falls Sie bisher den regulären DevMode ohne externen Server verwendet haben, starten Sie dazu einfach wie gewohnt den DevMode, schneiden von der angezeigten URL aber den “gwt.codesvr”-Parameter ab.

Falls ein externer Server zum Einsatz kommt, starten Sie diesen. In einigen Fällen muss dann allerdings dem Server der Parameter “-Dgwt.codeserver.port=9876 ” mitgegeben werden, da sonst der Client den Codeserver nicht findet.

8. SuperDevMode aktivieren

Öffnen Sie jetzt die URL ihrer Anwendung, klicken Sie auf das Bookmarklet “Dev Mode On” und dort auf “compile”. Der Codeserver kompiliert erzeugt daraufhin den JavaScript-Code auf Basis der aktuellen Java-Dateien neu und aktualisiert die Anwendung. Fertig.

Auch wenn die Anwendung jetzt bereits während der Entwicklung als JavaScript-Code ausgeführt wird, müssen Sie nicht auf wichtige Tools wie einen Debugger für die Java-Klassen verzichten. Wie das funktioniert und wie Sie mit dem SuperDevMode komfortabel arbeiten können zeigen wir Ihnen im nächsten Tutorial.