0%

如何在IntelliJ IDEA 上偵錯 maven plugin

問題描述

最近在Java 專案上使用 liquibase-maven-plugin遇到非常多難以定位的問題,無奈之下只好研究如何在IntelliJ IDEA 上對maven 外掛做偵錯,以下開始說明流程。

Step 1 :準備maven 插件原始碼

找到插件開源的代碼,直接git clone,或者也可以直接使用maven local repo路徑底下.m2指定插件打包好的jar也可以。

1
git clone git@github.com:liquibase/liquibase.git

Step 2 :啟用 maven plugin的 debug Mode

需要把maven plugin 的debug Mode開啟,以對其進行偵錯。只需把平常執行mvn的指令換成mvnDebug就可以啟用。

例如平時啟用liquibasevalidate為:

1
mvn org.liquibase:liquibase-maven-plugin:4.21.1:validate -f pom.xml

啟用debug Mode:

1
mvnDebug org.liquibase:liquibase-maven-plugin:4.21.1:validate -f pom.xml

啟用成功Terminal會有以下畫面提示

Step 3 :下斷點

先將Step 1準備的插件原始碼匯入專案中,或者也可以在專案的Externa Libraries將插件匯入,找到想要偵錯的程式打上斷點。

Step 4 :配置Remote JVM Debug

在工具列裡找到「**Add Configuration…**」,選擇Remote JVM Debug進行配置:

1
2
3
4
5
Name:自訂

host:localhost

Port:8000 (根據Step 2 的`Terminal`畫面提示啟用debug mode 監聽的連接埠)

Step 5 :進行偵錯

點擊除錯就可以對maven plugin的原始碼進行除錯

可以看到執行的流程進入到設定的斷點處

補充說明

  • 留意Step 2設定mvnDebug的插件名稱,org.liquibase:liquibase-maven-plugin:4.21.1:validate其格式對應pom.xml檔的 {{groupId}}:{{artifactId}}:{{version}}:{{version}}
  • 針對maven plugin的額外依賴包也可以進行偵錯,同步匯入到專案並下斷點即可