如何在vs代码中调试Java maven spring-boot应用程序?

Wat*_*oll 9 java maven spring-boot visual-studio-code

我能够调试一个简单的Java hello世界.第一步是"编译" javac -g.我查看了如何用maven完成同样的操作并找到http://docs.spring.io/spring-boot/docs/current/maven-plugin/examples/run-debug.html,但这些说明用于运行应用程序并等待调试器连接.

我也试着使用target/classesclasspathlaunch.json.调试器抱怨它无法在根目录中找到文件/,但它会运行.虽然调试器正在运行,但应用程序没有响应HTTP请求.

是否有一个mvn命令来编译应用程序javac -g并生成一个.class调试器能够成功运行?

leo*_*art 8

您将只能使用vs代码进行远程调试,因此mvnDebug spring-boot:run将执行一个简单的命令,它将执行与mvn spring-boot:run添加以下选项相同的操作:

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
Run Code Online (Sandbox Code Playgroud)

然后你可以从vs代码附加一个示例launch.json看起来像:

{
 "version": "0.2.0",
  "configurations": [

    {
      "type": "java",
      "name": "Debug (Launch)",
      "request": "launch",
      "mainClass": "",
      "args": ""
    },
    {
      "type": "java",
      "name": "Debug (Attach)",
      "request": "attach",
      "hostName": "localhost",
      "port": 8000
    }
  ] 
}
Run Code Online (Sandbox Code Playgroud)

您可以Debug(Attach)从调试面板中选择运行.

  • PS:如果您使用的是 Java 1.8+,请使用这些标志代替 `mvn spring-boot:run -Dspring-boot.run.jvmArguments="agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000" ` 如此处回答:https://github.com/Microsoft/vscode-java-debug/issues/300 (2认同)

nob*_*bar 5

假设您已经安装了Microsoft 的集合包 Java Extension Pack,调试 Maven Spring Boot 应用程序似乎可以开箱即用

code 从项目的根目录启动并“开始调试”。 启动调试器的方法有多种——最简单的方法是点击F5,如果有要求,选择Java

在标称条件下,这会触发以下步骤:

  1. 您的应用程序被编译成类文件
  2. 它找到并启动您的应用程序的main功能——其中应该包括SpringApplication.run()
  3. 应用程序运行(启用断点)并将日志输出发送到 TERMINAL 面板。

相关链接: