Cómo depurar el código de Java cuando se usa una secuencia de comandos ANT en Eclipse
debugging (8)
(No pudo comentar la respuesta dada, así que tiene que hacer otra respuesta)
Me di cuenta de que al ejecutar Ant desde Eclipse, tendrás que agregar fork = "true" a la tarea <java>
. Además, primero no estaba claro para mí cómo escribir jvmargs anidados, así que aquí va un ejemplo:
<java classname="..." fork="true">
<jvmarg value="-Xdebug" />
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" />
...
</java>
Tengo una clase Java y necesito depurarla (poner puntos de interrupción y continuar usando F6). Estoy usando una secuencia de comandos ANT para iniciar, construir, implementar y ejecutar el código. Estoy usando:
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" debuglevel="lines,vars,source">
..........
</javac>
Pero cuando coloco el punto de interrupción en una línea en mi clase foo.java y ejecuto el script ant (la parte de ejecución, Right Click on run -> Debug As -> Ant Build), Eclipse no se detiene en esa línea de código.
¿Qué me estoy perdiendo?
En la tarea <java>
ant, debe agregar dos parámetros jvm ( <jvmarg>
IIRC) para activar la depuración:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5432
Esto iniciará el programa Java con la depuración activada y el programa estará listo para aceptar conexiones de depurador en el puerto 5432. Luego debe usar la instalación de depuración remota de su IDE y dirigirla para que se conecte al puerto 5432.
Esto es para ayudar a las personas que se preguntan cómo depurar la aplicación web que usa y para crear e implementar. Esto es bastante frecuente en aplicaciones heredadas. Si el proyecto se inició como "Proyecto web dinámico" como el comienzo, seguir los pasos e incluso Ant no es necesario.
Establezca el punto de quiebre en su código.
Window -> Show View -> Others -> Servers
Agregue su servidor JBoss o Tomcat por ejemplo.
Haga clic derecho en el servidor y elija ''Depurar''.
Asegúrese de que depurar = "verdadero" se establece en el archivo de compilación de ant.
Pasos:
1) Configure el depurador Java remoto con el host local como nombre, la dirección del puerto como 8000 (o la dirección de puerto de su sistema que sea)
2) Cree un archivo por lotes y guárdelo en la carpeta bin de su tomcat (este paso es obligatorio cuando queremos depurar de forma remota los servidores en el mismo sistema).
en el archivo por lotes debe mantener esta línea:
establecer JPDA_ADDRESS = 8000
establecer JPDA_TRANSPORT = dt_socket
catalina.bat jpda start
después de esto, mantenga un punto de interrupción en su código java y depure este depurador remoto. funcionará.
Happy Coding !!
Yo también enfrenté este problema, hice los siguientes pasos para resolverlo.
Pon las siguientes líneas en el archivo ANT
Vaya a las configuraciones de depuración-> Aplicación Java remota-> Crear nuevo archivo de configuración con el nombre del proyecto, puerto = 5432 y el host es localhost y guárdelo.
Ahora ejecuta tu build.xml usando el modo de depuración, entonces deberías ver en la consola que "Escuchando el transporte dt_socket en la dirección 5432"
Ahora ejecuta el archivo de configuración de depuración que has configurado. Ahora su código de selenio se ejecutará usando el modo de depuración.
Espero que esto ayude.
Si todavía tienes problemas, házmelo saber para que pueda ayudarte.
Gracias
Así es como lo conseguí trabajando para mí (solo comentando para referencia futura).
En Eclipse:
Toolbar > External Tool Configurations... > (select your existing ANT build or create new) > JRE tab
En "Argumentos VM", agregue:
-Xdebug -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y
Nuevamente Toolbar > Debug > Debug Configurations... > Remote Java Application > New
Name: Debug Ant
Project: <Select your project where debug files are kept>
Host: localhost
Port: 8787
Ahora, en " Configuraciones de herramientas externas ", inicie " Tarea ANT " (que espera que se conecte el depurador de la aplicación Java remota), luego ejecute la " Ant de depuración " desde el icono de la barra de herramientas " Depurar ".
set ANT_OPTS=%ANT_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432
en Eclipse
Toolbar >> Run >> Debug Configurations >> + >>
Da los valores:
Name: Debug_Ant
Project: active-eclipse-project
Host:localhost
Port:5432