当前位置: 首页 > 知识库问答 >
问题:

应用程序不停止在设置断点使用mvnDebug

刘博文
2023-03-14

我使用Intellij IDE作为Spring引导应用程序。出于许多原因,我更喜欢使用外部终端来运行应用程序,而不是使用IDE本身内置的运行和调试选项。

我在外部终端上使用命令mvn spring boot:run运行应用程序。它按预期工作,但我无法调试应用程序。我正在使用命令mvnDebug-spring-boot:run在外部终端上进行调试,如本文所述。然后我创建了一个Remote配置,以便在端口8000处连接,它成功地完成了这项工作。但是应用程序不会在我设置的断点处停止。

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

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

此外,我知道IDE能够在类路径中进行更改,因为只要我在中进行更改。java文件,Spring Boot服务器在外部终端中以最新的更改重新启动。

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

其他信息:我正在使用Java8, Maven 3.6.1

共有1个答案

杜苏燕
2023-03-14

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

默认情况下,插件的配置方式是生成另一个JVM来运行JavaSpring 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插件的官方文档

 类似资料:
  • 我试图重新创建Connect四,我成功了。但我想通过频繁地切换颜色,给玩家一个获胜的四张光盘在哪里的指示。我对线程和编程中的时间概念是新的。 我也成功地给了用户这个指示,但是在关闭应用程序之后,控制台仍然会给出输出,也是在使用SetonCloserEquest时。 代码如下:

  • 我们为Azure Portal中托管的Web应用程序安装了应用程序Insights。

  • 我运行我的Android应用程序(基于Java),它可以工作。接下来,我添加到我的应用程序代码: FirebaseFirestore fdb=FirebaseFirestore。getInstance(); 这是我从Android官方网站上得到的代码https://firebase.google.com/docs/firestore/quickstart 应用程序运行,但接下来运行的设备显示消息“

  • 设置应用程序 Nest is built with features from both ES6 and ES7 (decorators, async / await). It means, that the easiest way to start adventure with it is to use Babel or TypeScript. In this tutorial I will u

  • 我有一个简单的控制台应用程序,有时需要执行图形操作,对于那些我使用JavaFx框架(有一些功能,我需要像css样式的文本)我只是生成一些形状和文本到一个隐藏的场景,然后保存在文件中仅此而已, 我知道要使用JavaFx,我必须将图形操作传递给JavaFx线程,但是当一切都完成后,我必须关闭应用程序(几个小时后),这个JavaFx线程仍然保持打开...我真的不想强行退出System.exit(),因为

  • 我正在以独立模式运行Spark群集。 我已使用以下选项提交了群集模式下的Spark应用程序: 使作业具有容错性。 现在我需要保持集群运行但停止应用程序运行。 我尝试过的事情: 停止集群并重新启动它。但是当我这样做时,应用程序会恢复执行。 使用了名为DriverWrapper的守护进程的Kill-9,但之后工作再次恢复。 我还删除了临时文件和目录并重新启动了集群,但作业再次恢复。 所以正在运行的应用