2009-10-08 16 views
5

Durante lo sviluppo di applicazioni web Maven Io di solito ricorrere al l'jetty-maven-plugin per avviare rapidamente la mia domanda per il test e il debug locale. L'utilizzo del lancio con m2eclipse presenta l'inconveniente di non includere correttamente tutte le origini per il debug, anche se vengono scaricati da Maven (vedere Source lookup does not seem to work).modo preferito di sviluppo di applicazioni web con m2eclipse

Qual è il modo migliore per eseguire il debug di applicazioni web Maven in Eclipse? Apprezzerei soprattutto le configurazioni che funzionano con lo gwt-maven-plugin.

+0

Ci sono altri professionisti che utilizzano m2eclipse su strumenti WTP per testare e eseguire il debug di applicazioni web all'interno di eclipse? – cetnar

+0

@cetnar: m2eclipse mi consente di utilizzare Maven per tutte le cose di tipo Mavenish, come dipendenze, plugin ecc. –

risposta

7

mio modo preferito per sviluppare applicazioni web con m2eclipse è quello di ... non utilizzarlo. Invece, io uso l'approccio descritto in Debugging with the Maven Jetty Plugin in Eclipse che sto citando qui di seguito:

Fase 1

Vai agli strumenti/esterne Run/esterne strumenti ... "la voce di menu sul" Esegui "menù bar Selezionare. 'Programma' e fare clic sul tasto '' Sul. 'Nuovo Main' scheda, compilare nella 'Location: ' eseguibile per il '' come il percorso completo tua" mvn Directory di lavoro: "seleziona lo spazio di lavoro corrispondente alla tua webapp. Per "Argomenti:" aggiungere jetty:run.

Passare alla scheda "Ambiente" e fare clic sul pulsante "Nuovo" per aggiungere un nuovo variabile denominata MAVEN_OPTS con il valore :

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

Se si fornisce suspend=n invece di suspend=y si può iniziare immediatamente senza eseguire il debugger e avviare il debugger in qualsiasi momento si desidera effettuare il debug in qualsiasi momento.

Fase 2

Poi, tirare la "Run/Debug/Debug ..." voce di menu e selezionare "Remote Java applicazione" e fare clic sul pulsante "Nuovo" . Compilare la finestra di dialogo selezionando il progetto webapp per il "Progetto:" il campo, e controllare che sia utilizzando lo stesso numero di porta, come si specificato nella proprietà address= sopra.

Ora tutto quello che dovete fare è quello di Run/Strumenti esterni e selezionare il nome del setup strumento Maven creato nel passaggio 1 per avviare il plugin e poi Run/Debug e selezionare il nome del setup di debug impostato in step2.

Da istruzioni fornite dal Rolf Strijdhorst sul Maven mailing lista

Arresto Jetty

Al fine di arrestare il server pontile del "Consenti cessazione del VM remoto" dovrebbe essere finestra di dialogo debug selezionata in Passaggio 2. Quando si utilizza il server di jetty e il debugger connesso, è possibile passare a prospettiva del debug. Nella vista di debug, fare clic con il pulsante destro del mouse sul client Java HotSpot (TM) VM [localhost: 4000] e scegliere terminare. Questo fermerà il debugger e il server jetty.

+0

Molto meglio, grazie. –

3

Cercare di evitare di scrivere codice che necessita di un contenitore di qualche tipo per eseguire il debug. Scrivi sempre codice che può essere eseguito indipendentemente e avvolgerlo in un livello molto sottile per l'implementazione (strato sottile -> poche righe di codice -> pochi bug).

Se proprio devi, prova MockRunner per emulare il server dell'app.

Oltre a questo, è possibile aggiungere manualmente le fonti nelle proprietà del progetto.

+0

Grazie per la risposta. Sono d'accordo con la tua affermazione sul layering, ma a volte ho bisogno di tutta l'esecuzione dell'applicazione per eseguire il debug dei problemi di integrazione, e questo è il momento in cui la ricerca della fonte è più utile. –

+0

In tal caso, impostare i punti di interruzione e aggiungere i sorgenti alle proprietà del progetto quando si incontra la vista "fonte mancante". È un po 'di lavoro manuale fino alla prossima versione di m2eclipse. –

Problemi correlati