2009-10-08 8 views
5

Bei der Entwicklung von Maven-Webanwendungen verwende ich normalerweise die jetty-maven-plugin, um meine Anwendung für lokales Testen und Debuggen schnell zu starten. Die Verwendung des Starts mit m2eclipse hat den Nachteil, dass alle Quellen für das Debugging nicht ordnungsgemäß einbezogen werden, obwohl sie von Maven heruntergeladen wurden (siehe Source lookup does not seem to work).Bevorzugter Weg zur Entwicklung von Web-Anwendungen mit m2eclipse

Was ist der beste Weg, Maven-Webanwendungen in Eclipse zu debuggen? Ich würde besonders Konfigurationen schätzen, die mit der gwt-maven-plugin arbeiten.

+0

Gibt es zusätzliche Vorteile mit m2eclipse über WTP-Tools zum Testen und Debuggen von Webapps in Eclipse? – cetnar

+0

@cetnar: m2eclipse erlaubt mir, Maven für alle Dinge mavenish, wie Abhängigkeiten, Plugins etc. –

Antwort

7

Meine bevorzugte Methode zur Entwicklung von Webanwendungen mit m2eclipse ist es, ... nicht zu verwenden. Stattdessen verwende ich den Ansatz in Debugging with the Maven Jetty Plugin in Eclipse beschrieben, die ich zitiere unten:

Schritt 1

Gehen Sie zu den Run/Externe Werkzeuge/Externe Tools ... "Menüpunkt auf dem" Run „Menü bar wählen.‚Programm‘und klicken Sie auf die Schaltfläche‚Neu‘auf dem. Registerkarte‚Allgemein‘, füllt in der‚Location ‚ausführbare Datei für die ‘‘als den vollständigen Pfad zum Ihrer“ mvn Arbeitsverzeichnis: "Wählen Sie den Arbeitsbereich aus, der Ihrer Webanwendung entspricht. Für "Argumente:" add jetty:run.

Gehen Sie zur Registerkarte „Umgebung“ und klicken Sie auf die Schaltfläche „Neu“ eine neue Variable MAVEN_OPTS mit dem Wert mit dem Namen hinzuzufügen:

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=4000,server=y,suspend=y 

Wenn Sie suspend=n statt suspend=y liefern können Sie beginnen, sofort ohne den Debugger und starten Sie den Debugger jederzeit Sie wirklich debuggen möchten.

Schritt 2

Dann die "Run/Debug/Debug ..." Menüpunkt nach oben ziehen, und wählen Sie "Remote Java Application" und klicken Sie auf "Neu" Taste. Füllen Sie das Dialog von Ihre Webapp Projekt für die Auswahl von „Projekt:“ Feld, und stellen Sie sicher, mit der gleichen Portnummer sind, wie Sie oben in der address= Eigenschaft angegeben.

Alles was Sie jetzt tun müssen, ist zu Run/Externe Tools und wählen Sie den Namen des Maven-Tool-Setup Sie in Schritt 1 erstellt das Plugin zu starten und dann Run/Debug und wählen Sie den Namen des Debug-Setup, das Sie in Schritt 2 eingerichtet haben.

Von Anweisungen von Rolf Strijdhorst auf der Maven Mailing Liste

Stoppen Jetty

Um den Anlegesteg Server zu stoppen die "Beendigung des Remote-VM zulassen" sollte Checked in Debug-Dialog in Schritt 2. Wenn Sie den Steg-Server ausgeführt haben und der Debugger angeschlossen ist, können Sie auf die wechseln Debugperspektive. Klicken Sie in der Debug-Ansicht mit der rechten Maustaste auf den Java HotSpot (TM) Client VM [localhost: 4000] und wählen Sie terminate. Dies wird den Debugger und den Anlegesteg-Server stoppen.

+0

Viel besser, danke. –

3

Versuchen Sie zu vermeiden, Code zu schreiben, der einen Container irgendeiner Art zum Debuggen benötigt. Schreiben Sie immer Code, der unabhängig ausgeführt werden kann, und wickeln Sie ihn in eine sehr dünne Ebene für die Bereitstellung ein (dünne Ebene -> einige Zeilen Code -> einige Fehler).

Wenn Sie wirklich müssen, versuchen Sie MockRunner, den App-Server zu emulieren.

Darüber hinaus können Sie die Quellen in den Projekteigenschaften manuell hinzufügen.

+0

Danke für die Antwort zu verwenden. Ich stimme Ihrer Aussage zu Layering zu, aber manchmal muss die gesamte Anwendung ausgeführt werden, um Integrationsprobleme zu debuggen, und das ist der Zeitpunkt, an dem die Quellensuche am nützlichsten ist. –

+0

Setzen Sie in diesem Fall Haltepunkte und fügen Sie die Quellen den Projekteigenschaften hinzu, wenn Sie die Ansicht "Fehlende Quelle" sehen. Es ist ein bisschen Handarbeit, bis die nächste Version von m2eclipse veröffentlicht wird. –

Verwandte Themen