【Play Framework 2.4】Eclipseでデバッグする

f:id:mofmof721:20151227114038p:plain:w200
Play Framework技術メモ第三回。
今回はEclipseデバッグする方法について。
公式のドキュメントはこちら
https://www.playframework.com/documentation/2.4.x/IDE

目次

デバッグモードで起動する

今までPlayアプリケーションを起動するにはactivator runコマンドを使用していました。
このコマンドを使用すると、本番モードでサーバーが起動します。

デバッグモードで起動するには、activator -jvm-debug 9999 runコマンドを使用します。
また、~runコマンドを使用すると、ソースを修正すると自動で再コンパイルしてくれます。
これはsbtのTriggered executionという機能を使用していて、ファイルが更新されると再度アクションが実行されるようになっています。
sbtの公式ドキュメントはこちら
http://www.scala-sbt.org/0.13/docs/Howto-Triggered.html

手作業でサーバーを再起動させる手間がなくなるので、開発中は~runを使うのをおすすめします。
デバッグモードで自動コンパイルをオンにして起動するコマンドは以下になります。

activator -jvm-debug 9999 ~run

Eclipseデバッグの構成を行う

Eclipseでプロジェクトを右クリック→デバッグデバッグの構成を選択します。
f:id:mofmof721:20151231002654p:plain

リモートJavaアプリケーション上で右クリック→新規を選択します。
f:id:mofmof721:20151231002730p:plain

ポートを9999に変更し、適用をクリックしたあと、デバッグをクリックします。
f:id:mofmof721:20151231002750p:plain

あとはブレークポイントを張ると、通常のJavaアプリケーションと同様にデバッグできます。
デバッグを終了するときは「切断」をクリックします。
デバッグを開始したあとにソースを変更すると「同期がとれていない可能性があります」と表示されることがあります。
一度切断したあと再度デバッグを開始すると正常に実行できます。
f:id:mofmof721:20151231003311p:plain