Mit dem Build-Tool Apache Ant können Prozesse wie z. B. die Kompilierung, Testen und Deployen automatisiert werden. Da in den meisten Eclipse Distributionen bereits ein Ant Plugin integriert ist, habe ich mich entschieden Ant zu nutzen. Die Ant XML Build-Dateien lassen sich direkt aus der Entwicklungsumgebung (IDE) starten.
Ant bietet den Task „java“ an, um eine JAVA Klasse innerhalb der Ant Java Virtual Machine (JVM) oder einem eigenen Prozess zu starten. Leider können nicht einfach Breakpoints in dieser Klasse gesetzt werden um den Sourcecode zu debuggen. Dies wäre aber oft hilfreich um Fehler schneller finden zu können.
Es gibt aber eine Möglichkeit das aus Ant gestartete Java Programm trotzdem zu debuggen. Dazu kann der in Eclipse integrierte Remote Debugger benutzt werden. Die Java Virtual Machine (JVM), die das Programm ausführt, muss vorab so konfiguriert werden, dass Eclipse sich mit einer Remote Debugging Session auf die JVM verbinden kann.
Dazu muss einfach der java Ant-Task um folgende JVM Startparameter erweitert werden:
transport=dt_socket
legt fest, dass die Verbindungen zum Debuggen über einen Socket laufen
suspend=y/n
Mit diesem Parameter kann gesteuert werden, ob der Prozess mit der Ausführung warten soll, bis sich der Debugger verbunden hat
address=8000
legt den Port fest, über den sich der Debugger mit der JVM verbinden kann.
Der Port 8000 kann natürlicht entsprechend angepasst werden.
Als Beispiel könnte der Ant-Task so aussehen.
Hinweis:
In diesem Beispiel müssen natürlich die Werte für die Attribute „classname“ und „classpath“ angepasst werden.
Das Attribut „fork“ muss auf „true“ gesetzt werden, da sonst die „jvarg“ Startparameter ignoriert werden.
Um dann in Eclipse die Java Anwendung zu debuggen, müssen folgende Schritte ausgeführt werden.
1. Ant Build-Datei ausführen. Sobald der „java“ Task mit den Debug-Informationen ausgeführt wird, wartet der Prozess darauf, dass sich der Debugger verbindet.
Konsolenausgabe:
Listening for transport dt_socket at address: 8000
2. In Eclipse die Debug Konfiguration aufrufen.
Menü „Run > Debug Configurations…“
Oder über das Menü-Symbol
3. Nachdem sich das neue Fenster „Debug Configurations“ geöffnet hat, muss im linken Bereich der Eintrag „Remote Java Application“ ausgewählt sein.
Dann auf das Symbol „New launch configuration“ in der linken oberen Ecke klicken, um eine neue Konfiguration anzulegen.
4. Jetzt müssen die Einstellungen angepasst werden
Connection Type: Standard (Socket Attach)
Host: localhost
Port: 8000 (je nachdem welcher Port ausgewählt wurde)
Allow termination of remote VM: Hacken setzen
5. Um den Debugger zu starten, einfach auf den Button „Debug“ rechts unten klicken.
Viel Spaß beim Debuggen!