従来のPlayフレームワークの場合、play debug ~run
であることを知っています。 activator debug ~run
を実行しようとしましたが、次のエラーが表示されます。
[error] Not a valid command: debug (similar: idea)
[error] Not a valid project ID: debug
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: debug (similar: debianSign, node)
[error] debug
[error] ^
私は何を間違えていますか?
単にactivator ~run
、次に、次を使用してJVMデバッグポートオプションを渡すことができるはずです。
./activator -jvm-debug <port> ~run
これはplay-runと同じことをしない場合がありますが、コマンドラインに追加する引数は次のとおりです。
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>
から: https://github.com/typesafehub/activator/blob/master/dist/src/templates/activator#L107
IDEでこのプロセスに正常にアタッチしました。
Windowsで実行している場合、自動構成は少し異なります。最新のアクティベーターを使用すると、次のことができます。
%UserProfile%\.activator\activatorconfig.txt
(UserProfileはWindowsのインストールによって異なります。私のプロファイルはC:\Documents and Settings\jsuereth
1つのインストールでC:\Users\jsuereth
別の)。ファイル内で次を過ぎます:-Xdebug
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<PUT YOUR PORT HERE>
set "Java_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>"
お役に立てば幸いです!
Play framework 2.xの場合:
プロジェクトディレクトリ内で、次のようなアクティベーターコマンドを実行します。
アクティベーター-jvm-debug 9999実行
これが完了したら、プロジェクトをリモートとしてデバッグしますJava IDE内のアプリケーションはアクティベータープロセスでフックします。
これが完了すると、どこでもコードを解読できるようになります。 :)
私が発見した別のこと:
fork in run := false
fork in Test := false
「build.sbt」にあります。
これにより、アプリケーション自体だけでなく、テストをデバッグできます。
Windows7とアクティベーター1.2.12がありますが、上記の答えはうまくいきませんでした。代わりに、プロジェクトホームフォルダーの「activator.bat」コマンドの「-jvm-debug」オプションを使用しましたが、機能しました。このような:
C:\ Projects\MyProject> activator -jvm-debug トランスポートdt_socketをアドレス:9999 [info] C:\ Users\MyAccount\.sbt\0.13\pluginsからグローバルプラグインをロードする [info] C:\ Projects\MyProject\project [info]からプロジェクト定義を読み込みます。現在のプロジェクトをMyProjectに設定します(ビルドファイル:/ C:/ Projects/MyProject /)
次に、アクティベーター(sbt)内で、「実行」コマンドを使用しました。このような:
[MyProject] $ run ---(アプリケーションの実行、自動リロードが有効になっています)--- [info] play-HTTPのリッスンon /0:0:0:0:0:0:0:0:9000 'force 'enabled (サーバーが起動しました。Ctrl+ Dを使用して停止してくださいコンソールに戻る...) 「監視」タスクの実行
Eclipseからデバッグするには、プロジェクトを右クリックして、「Debug As、Debug Configurations」を選択します。 [デバッグ構成]ダイアログで、[リモートJavaアプリケーション]を右クリックして[新規]を選択します。ポートを9999に変更して[適用]をクリックします。これから[デバッグ]をクリックします。実行中のアプリケーションに接続します。
Readrenのソリューションを試しましたが、Eclipseの代わりにIntelliJ IDEA Community Edition(組み込みのPlayサポートなし)を使用しました。
これは基本的に、新しいTypesafe Activatorを使用するためのドキュメント化方法です(1.3.2を使用しています)。私にとってアプリケーションは実行され、IntelliJデバッガーは接続しているように見えましたが、ブレークポイントにヒットしませんでした(また、IntelliJのブレークポイントにはヒットしないことを示す目盛りがありませんでした)。
Activate.batファイルのDEBUG_OPTSセットアップを変更して、jdwpコマンドライン引数の-agentlib形式を使用しようとしましたが、これで修正されたようです。
rem set DEBUG_OPTS=-Xdebug -Xrunjdwp:tnsport=dt_socket,server=y,suspend=n,address=!JPDA_PORT!
set DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999
おそらく、activatorconfig.txtのどこかにこれを配置する必要がありますが、これを機能させるために約4時間を費やしたので、これで十分です...
重要な場合に備えて、次のJVMを使用しています。
Javaバージョン "1.7.0_75" Java(TM)SEランタイム環境(ビルド1.7.0_75-b13)Java HotSpot(TM)64ビットサーバーVM (ビルド24.75-b04、混合モード)