Comprende el código bien previamente a usarlo a tu trabajo si ttienes algo que aportar puedes decirlo en los comentarios.
Solución:
Este es un problema que acabo de encontrar, y la solución del complemento eclipse me parece muy engorrosa. Encontré una solución más simple usando javax.tools.JavaCompiler para invocar el proceso de compilación. Usando el código a continuación, puede simplemente hacer clic derecho> Depurar como> Prueba JUnit en eclipse y depurar su procesador de anotaciones directamente desde allí
La forma más sencilla es crear un complemento de eclipse y luego depurarlo directamente desde eclipse. Suena mucho más difícil de lo que es, esto: https://www.youtube.com/watch?v=PjUaHkUsgzo es una guía de 7 minutos en youtube que puede ayudarlo a comenzar.
Esta pregunta se publicó hace más de 6 años, sin embargo, ahora me encontré con el mismo problema y todavía no podía encontrar una buena respuesta en Internet.
Finalmente pude encontrar una buena configuración que me permite desarrollar un procesador de anotaciones, usarlo en la compilación de otro proyecto y depurarlo según sea necesario.
La configuración es así:
Procesador de anotación desarrollado en un proyecto con GAV:
infra annotation-processor 1.0-SNAPSHOT
En el archivo POM del procesador de anotaciones, especifiqué lo siguiente:
En el proyecto donde se usa el procesador de anotaciones, se usa durante la compilación del proyecto. Es decir, el procesador de anotaciones se invoca durante la ejecución del compilador, javac. Descubrí que para depurar la ejecución del procesador de anotaciones mientras se ejecuta javac directamente, puedo usar la siguiente línea de comando:
javac -J-agentlib: jdwp = transport = dt_socket, server = y, suspend = y, address = 1044 -d target / classes -proc: only -processor infra.annotation.CustomizationAnnotationProcessor -cp ../annotation-processor/target/ procesador-de-anotaciones-1.0-SNAPSHOT.jar src main java org digital annotationtest MyTestClass.java
Observe la suspend=y parte en la línea de comando de javac. Esto le dice a la JVM que suspenda la ejecución hasta que el depurador se conecte a ella.
En esta situación, puedo iniciar el depurador de eclipse iniciando una configuración de depuración de aplicación Java remota. Configúrelo para usar el proyecto del procesador de anotaciones y adjúntelo al proceso en el host local y el puerto 1044. Esto le permite depurar el código del procesador de anotaciones. Si establece un punto de interrupción en el init o process métodos, el depurador se romperá.
Para habilitar la misma experiencia de depuración al compilar usando Maven, configuro el archivo POM de la siguiente manera:
Agregue una dependencia al POM donde se usa el procesador de anotaciones: infra annotation-processor 1.0-SNAPSHOT
En el mismo proyecto, utilizando el procesador de anotaciones, defina lo siguiente:
Observe el uso de true, y $enableDebugAnnotationCompilerArg.
Además, observe la definición de perfil de debugAnnotation y la definición de la propiedad. Esto nos permite iniciar una sesión de depuración del procesador de anotaciones ejecutando mvn -P debugAnnotation package y adjuntar el depurador de eclipse al proceso del compilador de la misma manera que se describe en 4 arriba.
valoraciones y comentarios
Agradecemos que quieras defender nuestra misión escribiendo un comentario o valorándolo te estamos eternamente agradecidos.