Vil*_*oja 36 java intellij-idea spring-boot
我在IntelliJ IDEA社区版上调试Java spring-boot应用程序时遇到了困难.主要问题是IDE不会在断点上停止,即使程序肯定通过它执行.如何让IntelliJ IDEA在断点处停止?
作为附加信息,这是我的运行配置:
使用以下命令进行Maven配置:spring-boot:run.在发布之前,我构建了项目.
sti*_*ger 43
唯一适用于我的方法是直接从Intellij Idea运行或调试应用程序.只需打开包含的类
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
Run Code Online (Sandbox Code Playgroud)
然后单击鼠标右键 - >调试我的应用程序
pip*_*nom 42
对我来说,这些步骤有效:
Abd*_*rsu 17
这个问题在这里报道
你可以通过发送fork = false参数到maven目标来解决它.
例如;
spring-boot:run -Dspring-boot.run.fork=false
Run Code Online (Sandbox Code Playgroud)
注意:这是一种解决方法
我发现在我的构建中包含Spring Dev Tools导致IntelliJ调试中断(根据上面的描述).如果您不使用此功能,则只需将其从构建中删除即可.
如果使用Maven,则应从您的pom.xml中删除以下行.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我让它工作的唯一方法是创建一个单独的远程调试配置。
所以去编辑配置->远程->+。然后通过intelliJ正常启动您的应用程序。然后切换到新创建的远程配置。而不是运行它,按调试。现在调试器应该准备好了,你可以设置断点,调试器会停止。
编辑:对我来说,调试端口已经启用,但我发现并不是每个人都这样。如果你得到这样的错误
'Unable to open debugger port (localhost:5005): java.net.ConnectException "Connection refused: connect"
Run Code Online (Sandbox Code Playgroud)
然后你需要在你的应用程序的 pom.xml 上启用端口。复制自@Gianluca Musa 回答:
<plugin>
<groupId>org.springframework.boot</groupId>
<configuration>
<jvmArguments>
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
</jvmArguments>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
感谢@Gianluca Musa 在他的回答中指出这一点
您可以在 IntelliJ 社区版中使用此解决方法,通过标准模块(通过 mvn spring-boot:run)调试 java 应用程序,而无需在 intelliJ 配置中创建专用的调试侦听器(它将动态创建):
\n在maven菜单中(默认位于屏幕右侧),单击“执行maven目标”按钮:
\n\n然后输入这个目标: mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5000"\n(您可能想要更改 intelliJ 的调试器和您的应用程序之间的协调端口)
这将启动您的 Spring boot 应用程序,但它将挂起。在run下面的菜单中,您将看到一个按钮Attach debugger。
单击它,然后 voil\xc3\xa0:您的 spring-boot 应用程序将运行并且断点将命中。
\n注意:@stinger 提供的解决方案仅适用于 IntelliJ Idea Ultimate Edition,它不适用于 IntelliJ Community Edition,这是问题中提出的,但我还没有足够的声誉来添加评论他的回答。如果您使用终极版,@stinger \ 的解决方案仍然是首选
\npiphonom 的 anwser 很好,但你需要做更多的事情,就是像这样将 jvmArguments 添加到 maven 插件中
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
</jvmArguments>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
有关 Spring Boot 项目远程调试的更多信息,请阅读本文
| 归档时间: |
|
| 查看次数: |
48070 次 |
| 最近记录: |