2008/03/22からのアクセス回数 19326 mavenを使ったプロジェクトでは、
のサイクルはコンパクトに実行できるのですが、いざWebアプリケーションをデバッグしようと するとwarファイルをtomcatのwebappsにコピーしてEclipseのデバッガーを使ってデバッグした 経験はありませんか? ここでは、jettyプラグインで起動したWebアプリケーションをEclipseでデバッグする方法を説明します。 mavenの実行プログラムのデバッグ設定 †javaのVMには、外部からのリモートデバッグを可能にするオプションが提供されています。 例えば、xxx.jarを $ java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n -jar xxx.jar これで、8000ポートを使って他のマシンからxxx.jarのプログラムをデバッグすることができるようになります。 mavenの設定 †このリモートデバッグオプションをmavenに使用するために、環境変数MAVEN_OPTSを使います。 LinuxやMac OSXでは.bashrcに以下の行を追加します。Windowsの場合にはユーザの環境変数にセットしてください。 export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" Mac OSXでターミナルを使用する場合には、ターミナルの起動後に以下のコマンドを実行してください。 (どうもターミナルの場合には、.bashrcが実行されないみたいです、どうしてでしょう?) $ . ./bashrc Eclipseの設定 †つぎにEclipseのデバッガを設定します。
デバッグの例 †では、実際にmvc-conventionのWebアプリケーションをデバッグしてみましょう。 ブレークポイントの設定 †最初の一覧画面の表示でブレークポイントを設定してみましょう。 jettyプラグインの起動 †つぎに、jettyプラグインでmvc-conventionのWebアプリケーションを起動します。 $ mvn jetty:run Listening for transport dt_socket at address: 8000 [INFO] Scanning for projects... [INFO] Searching repository for plugin with prefix: 'jetty'. [INFO] ------------------------------------------------------------------------ [INFO] Building mvc-convention Maven Webapp [INFO] task-segment: [jetty:run] [INFO] ------------------------------------------------------------------------ --- 省略 2008-03-22 15:14:34.029::INFO: Started SelectChannelConnector@0.0.0.0:8080 [INFO] Started Jetty Server 最初にListening for transport dt_socket at address: 8000とあるのが、リモートデバッグが 可能であり、デバッグ用ポートが8000に設定されていることを示しています。 デバッガの起動 †
ブラウザーの起動 †ブラウザーを起動し、 http://localhost:8080/mvc-convention/ を選択すると デバッガがブレークポイントで停止します。 コメント †この記事は、 皆様のご意見、ご希望をお待ちしております。 Tweet |