我正在开发Spring应用程序,需要单步执行一个控制器方法来查看它是如何工作的。我正在Eclipse中工作,并使用gradle bootRun
命令构建我的应用程序。
如何在调试模式下运行它?
我尝试了gradle bootRun --debug
,但它只是调试日志,而不是调试模式
我尝试了gradle help --task bootRun
--这给了我关于任务的信息,我看到了--debug-jvm
选项,但当我运行gradle bootRun --debug-jvm
时,应用程序没有启动
7条答案
按热度按时间gblwokeq1#
运行
gradle bootRun --debug-jvm
后,应用程序将挂起,直到您将调试器连接到它正在侦听的端口(端口5005)。cnjp1d6j2#
作为对上面dankdirkd回答的回应:(compare)(英文)
将使gradle构建在调试模式下运行。这可能不是您想要的。您想要实现的是springBoot任务在调试模式下启动您的应用程序。
Spring Boot 任务扩展了gradle JavaExec任务。您可以在build.gradle文件中配置bootRun任务,以添加如下调试配置:
对于build.gradle.kts,这将如下所示(禁用挂起模式):
如果您的服务器位于云中,并且您希望从本地计算机进行调试,则需要确保它允许来自外部的连接。
请注意,地址现在是
0.0.0.0:port
,而不是port
sqyvllje3#
对于
build.gradle.kts
文件,您也可以简单地使用下面的代码:pb3skfrl4#
如果您想知道如何启用Spring的调试模式(通常由
java -jar app.jar --debug
完成)和使用Gradle,请点击这里。这将--debug
传递给主类,这是您打开Sping Boot 的调试模式的方式,该模式记录autoconfig类以及其他内容。n6lpvg4x5#
我个人更喜欢使用
Gradle tasks
和right-clicking on the bootRun
。与终端相比,这在IDE中很有用。bgibtngc6#
对于那些寻找使用gradle bootRun任务的IntelliJ示例的用户:
1.将以下bootRun任务定义添加到build.gradle文件
1.运行启动运行任务
1.当您到达控制台/终端显示“侦听传输dt_socket at address:5005”转到“运行--〉附加到进程...”,然后选择您的应用程序
1.在任何需要的位置添加断点
jxct1oxe7#
定义一个执行Java应用程序的子进程。
在java代码中设置断点。执行Gradle任务后。例如,在Windows中:
任务会一直等待直到你连接调试器。例如,在Netbeans中,转到Debug-〉Attach debugger,在端口字段上设置30000。