【问题标题】:Application not stopping at set breakpoint using mvnDebug应用程序未使用 mvnDebug 在设置断点处停止
【发布时间】:2020-01-22 06:39:13
【问题描述】:

我正在将 Intellij IDE 用于 Spring Boot 应用程序。由于许多原因,我更喜欢使用外部终端来运行应用程序,而不是使用 IDE 本身的内置运行和调试选项。

我在外部终端上使用命令mvn spring-boot:run 运行应用程序。它按预期工作,但我无法调试应用程序。当我想调试in this answer 时,我在外部终端上使用命令mvnDebug spring-boot:run。然后我创建一个Remote 配置以连接到端口8000,它成功地完成了。但是应用程序不会在我设置的断点处停止。

我确信 Intellij 能够连接到 mvnDebug 进程,因为只要我在 IDE 中按下 Debug 按钮,我就会得到以下输出。

连接到目标VM,地址:'localhost:8000',传输: '套接字'

另外,我知道 IDE 能够在类路径中进行更改,因为只要我在 .java 文件中进行更改,spring boot 服务器就会在外部终端中重新启动,并显示最新的更改。

但应用程序仍然不会在设置的断点处停止。我还需要做什么?

其他信息: 我正在使用 Java 8、Maven 3.6.1

【问题讨论】:

    标签: java spring-boot intellij-idea


    【解决方案1】:

    mvnDebug 将打开以调试运行 maven 的 JVM。

    该插件默认配置为生成另一个 JVM 来运行 Java Spring Boot 应用程序(一个分叉的进程)。

    所以您可能正在连接到 Maven 的虚拟机。

    所以你应该在 Spring Boot maven 插件配置中指定调试参数:

    <project>
      ...
      <build>
        ...
        <plugins>
          ...
          <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <version>2.2.4.RELEASE</version>
            <configuration>
              <jvmArguments>
                -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
              </jvmArguments>
            </configuration>
            ...
          </plugin>
          ...
        </plugins>
        ...
      </build>
      ...
    </project>
    

    来源是spring boot plugin official documentation

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 2011-07-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多