2009-10-08 13 views
5

Al desarrollar aplicaciones web Maven, suelo recurrir al jetty-maven-plugin para iniciar rápidamente mi aplicación para pruebas y depuración locales. El uso del lanzamiento con m2eclipse tiene el inconveniente de no incluir correctamente todas las fuentes para la depuración, aunque las descargue Maven (consulte Source lookup does not seem to work).Forma preferida de desarrollo de aplicaciones web con m2eclipse

¿Cuál es la forma preferida de depurar las aplicaciones web de Maven en Eclipse? Agradecería especialmente las configuraciones que funcionan con el gwt-maven-plugin.

+0

¿Hay algún experto adicional que use m2eclipse sobre las herramientas de WTP para probar y depurar webapps dentro de eclipse? – cetnar

+0

@cetnar: m2eclipse me permite usar maven para todo lo que mavenish, como dependencias, complementos, etc. –

Respuesta

7

Mi forma preferida de desarrollar aplicaciones web con m2eclipse es ... no usarlo. En su lugar, yo uso el enfoque descrito en Debugging with the Maven Jetty Plugin in Eclipse que cito a continuación:

Paso 1

Ir a las herramientas Run/exteriores/externos herramientas ... "elemento de menú en el" Ejecutar "del menú barra Seleccionar. 'Programa' y haga clic en el '' botón en el. 'Nueva principal' ficha, llenar en el 'Lugar: ' ejecutable para el '' como la ruta completa a su" mvn Directorio de trabajo: "seleccione el espacio de trabajo que coincida con su aplicación web. Para "Argumentos:" agregue jetty:run.

Mover a la pestaña "Medio Ambiente" y haga clic en el botón "Nuevo" para agregar un nuevo variable llamada MAVEN_OPTS con el valor :

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

Si proporciona suspend=n en lugar de suspend=y puede empezar inmediatamente sin ejecutar el depurador y ejecute el depurador en cualquier momento que realmente desea depurar.

Paso 2

A continuación, tire hacia arriba la opción "Ejecutar/Depurar/depuración ..." elemento de menú y seleccione "Java Remote Aplicación" y haga clic en el botón "Nuevo" . Rellene el cuadro de diálogo seleccionando su proyecto de aplicación web para el campo "Proyecto:" y asegúrese de que sea usando el mismo número de puerto que especificado en la propiedad address= anterior.

Ahora todo lo que necesita hacer es RUN/Herramientas externas y seleccione el nombre de la configuración de la herramienta experto que ha creado en paso 1 para iniciar el plugin y luego Ejecutar/Depurar y seleccione el nombre del configuración de depuración que configuró en el paso2.

De instrucciones proporcionadas por Rolf Strijdhorst en el Maven correo lista

Detener embarcadero

Con el fin de detener el servidor embarcadero del "Permitir la terminación de la máquina virtual a distancia" debe ser marcado en el cuadro de diálogo de depuración en Paso 2. Cuando tiene el servidor de embarcadero ejecutándose y el depurador conectado, puede cambiar al perspectiva de depuración En la vista de depuración, haga clic con el botón derecho en Java HotSpot (TM) Client VM [localhost: 4000] y elija terminar. Esto detendrá el depurador y el servidor de embarcadero.

+0

Mucho mejor, gracias. –

3

Trate de evitar escribir código que necesita un contenedor de algún tipo para depurar. Siempre escriba código que pueda ejecutarse de forma independiente y envuélvalo en una capa muy delgada para su implementación (capa delgada -> pocas líneas de código -> pocos errores).

Si realmente debe hacerlo, intente con MockRunner para emular el servidor de la aplicación.

Aparte de eso, puede agregar manualmente las fuentes en las propiedades del proyecto.

+0

Gracias por la respuesta. Estoy de acuerdo con su declaración sobre la creación de capas, pero a veces necesito ejecutar una aplicación completa para depurar problemas de integración, y es entonces cuando la búsqueda de fuentes es más útil. –

+0

En ese caso, establezca puntos de interrupción y agregue las fuentes a las propiedades del proyecto cuando encuentre la vista de "fuente faltante". Es un poco de trabajo manual hasta que se publique la próxima versión de m2eclipse. –

Cuestiones relacionadas