设置应用启动端口 : -Dserver.port=9090
允许调试-Xdebug
,
-Xrunjdwp
: java debug wired protocol 启用之
suspend=y
导致应用启动后等待debug连接到address=5005
指定的5005端口才会继续执行程序。否则将一直等待——适合调试某些程序。
使用suspend=n
之后程序将正常执行。
此时在vscode中添加debug配置,使用java attach to remote program
,指定为localhost, 连接到address=5005
指定的5005端口。
这样就可以在 mvn spring-boot:run
启动程序后,随时在任意 controller添加断点,模拟请求后即可debug。
这样,是不是应用的正常运行和debug同时进行啊?! :D
玩起来很爽啦!
mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8787 -Dserver.port=9090 -Dpath.to.config.dir=/var/data/my/config/dir"
mvn spring-boot:run -Drun.jvmArguments="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
当然,也可以在pom.xml中指定如上启动参数,启用java debug协议:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<jvmArguments>-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005</jvmArguments>
<fork>true</fork>
</configuration>
<!--spring hot redeploy using cmd mvn spring-boot:run-->
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
</dependencies>
</plugin>