Spring Boot 1.4.3を使用したNetbeans 8.2で適切なデバッグ設定を取得するまで、あまりにも長い時間をいじっていた後、自分の調査結果を他の人のためのQ&Aとして書き留めました。
問題は、Netbeansのデフォルト設定がSpringをデバッグモードで適切に起動できず、インターネットを検索しても、機能しないSpringドキュメントで古い情報しか見つけられないことです。
方法がわかれば、解決策は簡単です。以下の正しいセットアップ手順を見つけてください。
テスト済みで、Netbeans 8.2およびSpring-Boot 1.4.3で動作します。
まず最初に、Spring Mavenプラグインが含まれていることを確認します(これは、新しいNetbeans Springプロジェクトを作成するときにすでに含まれているはずです)。
<plugins>
...
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
また、次のようにSpring Devtoolsを含めることをお勧めします。
<dependencies>
...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
...
</dependencies>
次に、プロジェクト設定->アクション->デバッグプロジェクトに移動し、以下を設定します。
目標を実行します。
spring-boot:run
プロパティを設定します。
run.jvmArguments=-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address}
jpda.listen=true
通常のデバッグボタンを使用してアプリケーションを実行すると、SpringがJVMデバッガに適切に接続するはずです。
Spring Boot 2.xプロジェクト(より具体的には、spring-boot-maven-pluginのバージョン2.x)のNetbeansデバッグを有効にする手順はまったく同じですが、run.jvmArguments
プロパティ名がspring-boot.run.jvmArguments
に変更されています。
spring-boot.run.jvmArguments=-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address}
jpda.listen=true
NetBeans 8.2とSpring Boot 2.0.1をテストしたところ、 @ TwoTheの指示 に従って動作させることができませんでした。最初に、出力ウィンドウに「JPDA Listening Start ...」しか表示されないという問題が発生しました。この問題を解決するために、オプションの依存関係として Spring Devtools を追加しました。次に、デバッグが正常に実行されているように見えても、通常はアクティブなスレッドのリストを表示する「デバッグ」ウィンドウが空で、設定したブレークポイントがトリガーされませんでした。 3番目に、赤い「デバッガセッションを終了」ボタンを押してデバッグセッションを停止しようとしても、Tomcatサーバーは停止しません。
実行目標を「spring-boot:run」に変更する代わりに、デフォルトの「プロジェクトのデバッグ」アクション実行目標を使用することで十分であることがわかりました。
process-classes org.codehaus.mojo:exec-maven-plugin:1.2.1:exec
..およびプロパティ:
exec.args = -Xdebug -Xrunjdwp:transport = dt_socket、server = n、address = $ {jpda.address} -classpath%classpath $ {packageClassName} exec.executable = Java jpda.listen = true
(補足として、通常のデバッグJavaアプリケーションは、EclipseでSpring Bootアプリケーションをデバッグするための推奨アプローチであると思われます。 EclipseでSpring Bootアプリケーションをデバッグする方法は?)を参照してください )
役立つヒントの1つは、特定のSpring Bootプロファイル(「デバッグ」など)を使用してデバッグする場合は、「-Dspring.profiles.active = debug」を「exec.args」プロパティの前に追加できることです。参照: 完全に実行可能なJARを実行し、-Dプロパティを指定するスプリングブート
NetBeans9でテスト済み
アクション:任意の名前を追加します。プロパティの設定:[追加]ボタンを選択し、[Mavenビルドのデバッグ]を選択して、常にデバッグします-> IDEデバッグボタン
上記の修正をすべて適用しても問題が解決しない場合は、すべてのブレークポイントを削除して、再試行してください。ウィンドウ->デバッグ->ブレークポイント->すべてのブレークポイントを削除