2012-10-10 21 views
11

Intenté depurar remotamente un complemento maven para el proyecto liquibase con Intellij. El problema es que IDEA está resaltando la línea de código fuente incorrecta y no puedo entender por qué. El código fuente que intento depurar está intacto. Intuitivamente construí e instalé el complemento en mi repositorio maven local a partir de las fuentes que uso en Intellij. Mi versión de Intellij es 11.1.3 y la versión de maven es 3.0.4 que se ejecuta en Ubuntu 12.04.IntelliJ pasa por las líneas incorrectas al depurar la aplicación Java remota

Para depurar el plugin maven utilicé mvnDebug comand. Si alguien tiene la menor idea de lo que está mal, por favor dame algunos consejos. Además, si necesita más información, pregunte. No estoy demasiado acostumbrado a la depuración remota (de hecho, esta es la segunda vez que hago esto), así que es posible que le entregue algo de información que necesita.

Respuesta

13

Para mí, siempre que IntelliJ resalta la línea incorrecta, siempre fue porque la versión de las JAR/clases que se usan para ejecutar la aplicación difiere de mis archivos fuente, es decir, se usaron versiones diferentes de las fuentes para construir el JAR y/o clases.

Deberá asegurarse de estar trabajando desde la fuente exacta que se usó para compilar las clases que está depurando.

Puede verificar esto mirando la classpath que se utiliza para iniciar la aplicación, ubicando el archivo JAR o el directorio de clases que contiene las clases que está depurando, y verificando que se crearon a partir de las fuentes que está inspeccionando.

Tenga en cuenta que cuando depura bibliotecas de terceros, a menudo puede descargar el jar "orígenes" (consulte IntelliJ2-IDEA get Maven-2 to download source and documentation).

+0

Gracias guy's! En mi caso, la versión de complemento utilizada para compilar el proyecto no era la misma con las fuentes que intentaba depurar. Fue una tontería que no verificara qué versión de complemento se usa cuando se construye el proyecto. Pensé que utilizará mi versión de compilación manual. –

1

En lugar de realizar la depuración remota, puede ejecutar el complemento directamente desde IntelliJ.

  1. Haga que el proyecto de complemento de liquibase se cargue en IntelliJ con solo señalar el pom.xml.
  2. Elija Edit Configurations...
  3. Pulse el botón + a Add New Configuration.
  4. Seleccione Maven. enter image description here
  5. Ingrese el Working directory al proyecto que desea ejecutar el complemento.
  6. Ingrese el Command line. Podría ser process-sources, compile o liquibase:status dependiendo de lo que quiera hacer.
  7. Presione OK
  8. Establezca un punto de interrupción en el Liquibase Mojo.

Ahora puede comenzar esta configuración pulsando Shift +F9.

Maven comenzará y finalmente verá que su plugin está esperando en el punto de interrupción.


Asegúrese de que ha definido el plugin en el objetivo pom.xml con la versión correcta y también que construir el plugin antes de lanzarlo. Puede asegurarse activando Make en el panel Before Launch.

enter image description here

+0

Funciona muy bien. Simple y rápido, aunque la depuración remota es bastante rápida cuando todo está en su máquina local. –

+0

Supongo que depende de la situación. Si está desarrollando un complemento, este enfoque tiene un mejor tiempo de respuesta. Pero en su caso cuando está utilizando un complemento ya desarrollado, entonces la otra solución podría ser mejor. – maba

3

Si me encontré con este post, y asegurarse de que la fuente y JAR son el mismo código, entonces esto podría ser su problema.

http://youtrack.jetbrains.com/issue/IDEA-8021

+0

¡Gracias! ¡Fue una publicación muy informativa! –

Cuestiones relacionadas