SpringBoot工程+熱部署進行遠程調試
本文轉載自:https://blog.csdn.net/qq_31868349/article/details/78553901
SpringBoot工程+熱部署進行遠程調試
本地端添加配置
在pom.xml文件添加配置:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <jvmArguments> -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=XXXX </jvmArguments> <fork>true</fork> </configuration> </plugin>
-Xdebug
啟用調試特性
-Xrunjdwp
啟用JDWP實現,它包含若幹子選項:
transport=dt_socket
JPDA front-end和back-end之間的傳輸方法。dt_socket表示使用套接字傳輸。
JVM在默認在8000端口上監聽請求,是指服務器上的。
server=y
y表示啟動的JVM是被調試者。如果為n,則表示啟動的JVM是調試器。
suspend=y
y表示啟動的JVM會暫停等待,直到調試器連接上。
suspend=y這個選項很重要。如果你想從Tomcat啟動的一開始就進行調試,那麽就必須設置suspend=y。
jar 命令開啟遠程調試
博主用的是XShell啟動jar包,例如 原先在XShell上啟動jar的命令是:java -jar XXX.jar,現在需要修改為:
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=XXXX -jar XXX.jar
ecplise連接遠程端口進行調試
右鍵工程->debug as->debug configurations,可以看到如下圖
第一次運行,需要先把jar包上傳至服務器。後續就不用了
如圖所示點擊Debug即可開始遠程調試
熱部署
考慮到代碼是經常修改的,代碼每次都要上傳,這樣很麻煩。Spring有個插件spring-boot-devtools進行熱部署,使更改代碼無須手動重啟工程。spring-boot-devtools 是一個為開發者服務的一個模塊,其中最重要的功能就是自動應用代碼更改到最新的應用上。
在pom.xml文件添加如下依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional><!-- optional=true,依賴不會傳遞,該項目依賴devtools;之後依賴myboot項目的項目如果想要使用devtools,需要重新引入 --> </dependency>
此外需要在這時候添加的spring-boot-maven-plugin:
<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <fork>true</fork><!-- fork: 如果沒有配置該項配置,devtools不會起作用的,即應用不會restear --> </configuration> </plugin>
通過配置以上信息,我們在可以看到工程右邊有個devtools的標誌,表示已成功配置。
以上就完成全部操作了。
常見問題:
在eclipse中,若沒有設置Build Automatically,修改代碼後,應用不會同步最新的代碼,則需要對工程進行build操作
SpringBoot工程+熱部署進行遠程調試