本文主要是介绍spring-boot-maven-plugin:debug调试程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
spring-boot-maven-plugin
的 run goal 可启动程序运行项目。但发现直接执行 spring-boot:run
时,不能debug打断点点调试。spring-boot-maven-plugin
的官方文档给出了原因和解决方式。
原因
run goal 默认将应用运行于 a forked process,通常方式设置的命令行参数不会作用于程序,因此直接使用run goal,是不能调试程序的。
解决方式
若想调试,或想设置其他JVM 参数,应配置 jvmArguments
参数。
-
方式一,在pom文件中配置
<project>...<build>...<plugins>...<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.2.1.RELEASE</version><configuration><jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005</jvmArguments></configuration>...</plugin>...</plugins>...</build>... </project>
-
方式二,在命令行中指定
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
通过以上方式运行后,进程将监听本地的5005端口,等待调试器连接进来。我们可以在5005端口进行远程调试。
在idea中实践
-
在pom中按上述代码配置
jvmArguments
参数。 -
添加一个远程调试配置:
Host为 localhost,Port 应与
spring-boot-maven-plugin
中配置的端口一致,这里是5005
-
执行
spring-boot-maven-plugin
的 run goal
这时可以看到,进程在监听5005端口,等待调试器连接
-
DEBUG模式下启动远程调试,发现已连接上5005端口
-
可以打断点调试了,完结撒花
这篇关于spring-boot-maven-plugin:debug调试程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!