Java Maven和SpringBoot调试-Drun.jvmArguments=-Xdebug的真正含义是什么

Java Maven和SpringBoot调试-Drun.jvmArguments=-Xdebug的真正含义是什么,java,maven,debugging,spring-boot,intellij-idea,Java,Maven,Debugging,Spring Boot,Intellij Idea,我可以在调试模式下启动我的主要Spring引导应用程序,我可以在IntelliJ中设置一个断点,它可以工作!即,在下面运行: @SpringBootApplication public class JasperApplication { public static void main(String[] args) { SpringApplication.run(JasperApplication.class, args); } } 但是,如果我使用带调试选项的maven run插

我可以在调试模式下启动我的主要Spring引导应用程序,我可以在IntelliJ中设置一个断点,它可以工作!即,在下面运行:

@SpringBootApplication
public class JasperApplication {

public static void main(String[] args) {
    SpringApplication.run(JasperApplication.class, args);
  }
}
但是,如果我使用带调试选项的maven run插件在IntelliJ中启动Spring Boot应用程序:

spring-boot:run
调试不起作用。我读过

-Drun.jvmArguments=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
我不能把所有的东西都放在一起,有没有人能告诉我这一切是如何运作的,或者指导我读一些文章来描述整个事情


我希望能够在IntelliJ和命令行中运行maven Spring引导插件,能够调试和设置断点。谢谢

当您调用
spring boot:run
时,您正在启动一个远程进程,即该进程不是在IDE中运行的

如果要从IDE中调试此过程,请应用以下先决条件:

  • 远程进程必须是“远程调试感知”的,这是使用
    -Drun.jvmArguments=“-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005”运行该进程时所做的操作。

  • 必须在IDE中使用远程调试器。更多详情,但简要总结如下:

    • 运行>编辑配置
    • 单击
      +
      图标并选择Remote
    • 命名运行配置,并使用模块的类路径为
      搜索源选择模块
    • 调用mvn spring boot:run-Drun.jvmArguments=“-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005”并在IDE中启动此运行配置,两者将相互对话
以下是显示远程运行配置的屏幕截图,如下所示:


当您调用
spring boot:run
时,您正在启动一个远程进程,即此进程不是在IDE中运行

如果要从IDE中调试此过程,请应用以下先决条件:

  • 远程进程必须是“远程调试感知”的,这是使用
    -Drun.jvmArguments=“-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005”运行该进程时所做的操作。

  • 必须在IDE中使用远程调试器。更多详情,但简要总结如下:

    • 运行>编辑配置
    • 单击
      +
      图标并选择Remote
    • 命名运行配置并使用模块的类路径为
      搜索源选择模块
    • 调用mvn spring boot:run-Drun.jvmArguments=“-Xdebug-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005”并在IDE中启动此运行配置,两者将相互对话
以下是显示远程运行配置的屏幕截图,如下所示: