問題描述
最近在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
就可以啟用。
例如平時啟用liquibase
的validate
為:
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 | Name:自訂 |
Step 5 :進行偵錯
點擊除錯就可以對maven plugin的原始碼進行除錯
可以看到執行的流程進入到設定的斷點處
補充說明
- 留意Step 2設定
mvnDebug
的插件名稱,org.liquibase:liquibase-maven-plugin:4.21.1:validate
其格式對應pom.xml檔的{{groupId}}:{{artifactId}}:{{version}}:{{version}}
- 針對
maven plugin
的額外依賴包也可以進行偵錯,同步匯入到專案並下斷點即可