2012-10-10 141 views
11

我試圖用Intellij遠程調試liquibase項目的maven插件。問題是,IDEA突出顯示了錯誤的源代碼行,我不明白爲什麼。 我嘗試調試的源代碼未觸及。我手工構建並從我在Intellij中使用的源代碼將該插件安裝到本地Maven存儲庫中。 My Intellij版本爲11.1.3,在Ubuntu 12.04上運行的版本爲3.0.4當調試遠程Java應用程序時,IntelliJ步驟錯誤行

爲了調試maven插件,我使用了mvnDebug命令。 如果有人對我的錯誤有絲毫的想法,請給我一些建議。另外如果你需要更多的信息,請詢問。我不太習慣遠程調試(實際上這是我第二次做這個),所以我可能會放下一些你需要的信息。

回答

13

對於我來說,無論何時IntelliJ突出顯示錯誤的行,總是因爲用於運行應用程序的JAR /類的版本與我的源文件不同 - 即不同版本的源被用於構建JAR和/或課程。

您將必須確定您正在使用的是用於構建正在調試的類的確切源。

您可以通過查看用於啓動應用程序的類路徑,找到包含正在調試的類的JAR文件或類目錄,並驗證它們是從正在檢查的源構建的來驗證。

請注意,當您在調試第三方庫時,您通常可以下載「sources」jar(請參閱IntelliJ2-IDEA get Maven-2 to download source and documentation)。

+0

謝謝你的傢伙!就我而言,用於構建項目的插件版本與我試圖調試的源代碼不一樣。對於我來說,在項目構建時不檢查使用哪個插件版本是一件虛假的事情。我認爲它會使用我的手動構建版本。 –

1

而不是遠程調試,你可以直接從IntelliJ運行插件。

  1. 通過指向pom.xml,在IntelliJ中加載了liquibase插件項目。
  2. 選擇Edit Configurations...
  3. +按鈕Add New Configuration
  4. 請選擇Mavenenter image description here
  5. 輸入Working directory到您要運行插件的項目。
  6. 輸入Command line。取決於你想要做什麼,可能是process-sources,compileliquibase:status
  7. 好吧
  8. 在Liquibase Mojo中設置一個斷點。

現在,你可以通過按Shift鍵+ F9 開始此配置。

Maven會開始,最後你會看到你的插件正在等待斷點!


確保您已在目標pom.xml用正確的版本中定義的插件,還可以爲您啓動它之前建立的插件。您可以確保在Before Launch窗格中啓用Make

enter image description here

+0

它工作得很好。簡單而快速,儘管當本地機器上的所有內容都可以進行遠程調試時,速度非常快。 –

+0

我想這取決於情況。如果你正在開發一個插件,那麼這種方法有更好的週轉時間。但在你使用已經開發的插件的情況下,另一種解決方案可能會更好。 – maba