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

如何在vs代码中调试Java maven spring启动应用程序?,java,maven,spring-boot,visual-studio-code,Java,Maven,Spring Boot,Visual Studio Code,我能够调试一个简单的Java hello world。第一步是使用javac-g进行编译。我查找了我将如何用maven完成相同的操作,并发现,但是这些指令是用于运行应用程序并等待调试器连接的 我还尝试在launch.json中使用target/classes作为类路径。调试器抱怨在根目录/中找不到文件,但它正在运行。尽管调试器正在运行,但应用程序没有响应HTTP请求 是否有一个mvn命令可以用javac-g编译应用程序并生成一个调试器能够成功运行的类?您将只能使用vs代码进行远程调试,因此一个简

我能够调试一个简单的Java hello world。第一步是使用javac-g进行编译。我查找了我将如何用maven完成相同的操作,并发现,但是这些指令是用于运行应用程序并等待调试器连接的

我还尝试在launch.json中使用target/classes作为类路径。调试器抱怨在根目录/中找不到文件,但它正在运行。尽管调试器正在运行,但应用程序没有响应HTTP请求


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

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

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y
然后可以从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
    }
  ] 
}

您可以从调试面板中选择DebugAttach来运行。

假设您已经安装了由Microsoft调试Maven Spring Boot应用程序的收集包,那么它似乎可以立即运行

从项目的根目录启动代码并开始调试。启动debbugger有多种方法——最简单的方法是点击F5,如果需要,选择Java

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

您的应用程序被编译成类文件 它查找并启动应用程序的主要功能,其中应包括SpringApplication.run 应用程序在启用断点的情况下运行,并将日志输出发送到终端面板。 相关链接:


TODO:环境变量带有环境变量的错误:导出spring\u profiles\u active=local;密码可能需要在当前编辑窗口中打开java文件。如果这不起作用,请尝试使用应用程序的main.PS打开文件:如果您使用的是Java 1.8+,请使用这些标志,而不是mvn spring boot:run-Dspring boot.run.jvmArguments=agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000,如下所示: