IntelliJ 2016.3.5内のGradleタスク(実行およびテストとしての依存関係)を使用してブレークポイントを使用してデバッグする必要があるJVMアプリケーションがあります。 。GradleとIntelliJでブレークポイントを持つJVMアプリケーション(JavaまたはScala)のデバッグ2016.3.5
のGradleとのIntelliJでデバッグを実現する方法についてのさまざまな情報源があります。
- Debug Gradle plugins with IntelliJ
- Using Intellij to set breakpoints in gradle project(最も役立つ1)
- https://youtrack.jetbrains.com/issue/IDEA-119551
- https://youtrack.jetbrains.com/issue/IDEA-86465
- https://youtrack.jetbrains.com/issue/IDEA-119494
ただし、これらのソースは古いか、別のシナリオ用です。私はGradleスクリプトをデバッグするのではなく、実際のJava/Scalaアプリケーションを実行するJVMをデバッグします。さらに、IntelliJの最近のバージョンでは、Daemonを無効にするオプションを提供していないGradle Tooling APIを使用しています。 JetBrainsのネイティブサポートは、実行タスクとテストタスクのデバッグボタンを使用して直接提供されますが、別のタスク(チェックなど)の依存関係として定義されていない場合にのみ提供されます。
は、情報源によると、これはその後、移動するための方法である:
:run { // or test, doesn't matter
jvmArgs "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005"
// xor, or both, doesn't seem to make any difference
debug true
}
をどのような方法では、Gradleの(またはJVM)は、ポート5005でリッスンを開始します
:その後、私は、次のパラメータを使用してリモート設定を作成しています
しかし、私はIntelliJのリモートデバッグ作業を開始するとき、それは失敗します。
は、私はまた、一時停止= N成功せず、ポート5006を使用して試してみました。それ以前は、IntelliJ-Gradleの実行タスクでGradle引数を使用しようとしました。その後、実際には接続されましたが、明らかにGradleスクリプトではなく、アプリケーションJVMではなく、ブレークポイントで割り込みが発生しなかったためです。これを修正するには?
あなたは単に、例えば、Gradleのデバッグコンフィギュレーションを使用することはできませんなぜgradleツールのウィンドウでgraleタスクのコンテキストメニューからデバッグアクションを使用しますか? –
この場合、実際には私のためにGradleスクリプトをデバッグしますが、JavaコードやScalaコードはデバッグしないためです。つまり、JavaまたはScalaコード内のブレークポイントは何もしません。 –
再チェックしました.Gradleスクリプトでさえもデバッグされていません。 –