maven2をEclipseでリモートデバッグする方法
少し前にmaven2にはまってた頃に知ったんですがmaven2をEclipseでリモートデバッグする方法のご紹介。僕は正直静的にコードを読んでもあまり理解できないことが多く実際に動かしながらじゃないと辛いので重宝してます。社内のハッカーな方々はデバッガなんて必要ないそうですがシンジラレナイ…。元ネタはここ
前提
mvn.batの修正
- maven2の動作を確認
C:\>mvn --version Maven version: 2.0.6
- %MAVEN_HOME%\bin\mvn.batをコピーしてmvn-debug.batという名前で保存する。
- mvn-debug.batを開く
- 30行目付近(maven2.0.6の場合は32行目)の以下の記述を
@REM set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
コメントアウトして以下のようにする。
set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
- 以下のようにして実行してみると8000番ポートで待ち受けるようになる
C:\>mvn-debug --version C:\>set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt _socket,server=y,suspend=y,address=8000 Listening for transport dt_socket at address: 8000
Eclipseにmaven2のソースコードを読み込むための設定
mvn -Declipse.workspace="${eclipse.workspace}" eclipse:add-maven-repo
※${eclipse.workspace}にはeclipseのworkspaceへのパスを指定
mvn eclipse:eclipse
リモートデバッグ用の設定
- ソースタブを選択し、追加ボタンを押して、先ほど追加したプロジェクトすべてを選択する。
最後に
- こんなマニアックなネタだけどmaven2のpluginとか作るときに既存pluginの動作を追いかけるときなど役立つかも?。ちなみにmaven2のソースコードをチェックアウトした以降の手順についてスクリーンキャストを作ろうとして途中で面倒になって投げたのがあるので晒しておきます。途中まで作ったスクリーンキャスト