2012-10-10 5 views
11

Ho provato a eseguire il debug remoto di un plug-in Maven per il progetto liquibase con Intellij. Il problema è che IDEA sta evidenziando la riga di codice sorgente sbagliata e non riesco a capire perché. Il codice sorgente che provo a eseguire il debug non è stato toccato. Ho creato e installato manualmente il plug-in nel mio repository locale di Maven dai sorgenti che utilizzo in Intellij. La mia versione di Intellij è 11.1.3 e la versione di Maven è 3.0.4 in esecuzione su Ubuntu 12.04.IntelliJ esegue le linee errate durante il debug dell'applicazione Java remota

Per il debug del plugin maven ho usato il comando mvnDebug. Se qualcuno ha la minima idea di cosa c'è che non va, vi prego di darmi dei consigli. Se hai bisogno di ulteriori informazioni, ti preghiamo di chiedere. Non sono troppo abituato al debug remoto (in effetti questa è la seconda volta che l'ho fatto) in modo da poter scivolare alcune informazioni di cui hai bisogno.

risposta

13

Per me, ogni volta che IntelliJ evidenzia la riga errata, è sempre stato perché la versione del JAR/classi utilizzata per eseguire l'applicazione è diversa dai miei file di origine, ovvero sono state utilizzate diverse versioni dei sorgenti per creare il JAR e/o classi.

Si dovrà essere sicuri che si sta lavorando dalla sorgente esatta che è stata utilizzata per costruire le classi di cui si sta eseguendo il debug.

È possibile verificare ciò osservando il percorso di classe utilizzato per avviare l'applicazione, individuando il file JAR o la directory delle classi che contiene le classi di cui si sta eseguendo il debug e verificando che siano state create dalle origini che si stanno ispezionando.

Si noti che quando si esegue il debug di librerie di terze parti, è spesso possibile scaricare il jar "sources" (vedere IntelliJ2-IDEA get Maven-2 to download source and documentation).

+0

Grazie ragazzo! Nel mio caso, la versione del plugin utilizzata per creare il progetto non era la stessa con le fonti che stavo cercando di eseguire il debug. Per me è stata una cosa falsa non controllare quale versione del plugin viene utilizzata quando il progetto è stato creato. Ho pensato che usasse la mia versione di compilazione manuale. –

1

Invece di eseguire il debug remoto è possibile eseguire il plug-in direttamente da IntelliJ.

  1. Il progetto del plugin liquibase è stato caricato in IntelliJ semplicemente puntando allo pom.xml.
  2. Scegliere Edit Configurations...
  3. Premere il pulsante + a Add New Configuration.
  4. Selezionare Maven. enter image description here
  5. Immettere Working directory nel progetto su cui si desidera eseguire il plug-in.
  6. Immettere Command line. Potrebbe essere process-sources, compile o liquibase:status a seconda di ciò che si desidera fare.
  7. Premere OK
  8. Impostare un punto di interruzione nel Liquibase Mojo.

Ora è possibile avviare questa configurazione premendo Maiusc +F9.

Maven verrà avviato e finalmente vedrai che il tuo plug-in è in attesa al punto di interruzione!


Assicurarsi che è stato definito il plugin nel target pom.xml con la versione corretta e anche che si costruire il plugin prima di lanciarlo. È possibile garantire che abilitando Make nel riquadro Before Launch.

enter image description here

+0

Funziona molto bene. Semplice e veloce, anche se il debug remoto è abbastanza veloce quando tutto è sulla tua macchina locale. –

+0

Suppongo che dipenda dalla situazione. Se stai sviluppando un plug-in, questo approccio ha un tempo di consegna migliore. Ma nel tuo caso quando usi un plugin già sviluppato, l'altra soluzione potrebbe essere migliore. – maba

3

Se siamo imbattuti in questo post, e assicurarsi che la fonte e JAR sono lo stesso codice, allora questo potrebbe essere il vostro problema.

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

+0

Grazie! Era un post molto informativo! –

Problemi correlati