本文转载自: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表示使用套接字传输。 
address=XXXX 
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 
如果出现Connection refused,则需要检查端口的使用情况,检测是否被占用以及能否被外部访问

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工程+热部署进行远程调试的更多相关文章

  1. SpringBoot工程热部署

    SpringBoot工程热部署 1.在pom文件中添加热部署依赖 <!-- 热部署配置 --> <dependency> <groupId>org.springfr ...

  2. SpringBoot SpringCloud 热部署 热加载 热调试

    疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 架构师成长+面试必备之 高并发基础书籍 [Netty Zookeeper Redis 高并发实战 ] Crazy-Sp ...

  3. Springboot静态文件不更新的解决办法,以及Springboot实现热部署

    Springboot静态文件不更新的解决办法,以及Springboot实现热部署 原文链接:https://www.cnblogs.com/blog5277/p/9271882.html 原文作者:博 ...

  4. idea+spring-boot+devtools热部署

    idea+spring-boot+devtools热部署 标签: spring-boot 2017-03-20 14:45 2635人阅读 评论(1) 收藏 举报  分类: spring-boot m ...

  5. springBoot开启热部署

    springBoot开启热部署 这里使用devtools工具开启热部署 〇.搭建springbboot基础环境 一.添加依赖 <dependency> <groupId>org ...

  6. spring-boot项目热部署以及spring-devtools导致同类不能转换

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  7. 从零开始学习springboot之热部署的配置

    各位看官大家好,博主之前因为毕业设计以及毕业旅游耽搁了好长一段时间没有更新博客了,从今天起又会慢慢开始学习啦. 今天主要是来学习springboot热部署的配置. 一. 热部署 我们通常在修改某些文件 ...

  8. springboot 配置热部署 及 热部署后依旧是404的坑

    springboot配置热部署的教程网上一大堆: 个人喜欢这种方式: https://www.cnblogs.com/winner-0715/p/6666579.html 本文主要强调的是,大家如果配 ...

  9. Java项目部署与远程调试两三事

    [开启和进行远程调试]参考https://blog.csdn.net/WSYW126/article/details/748536801.tomcat:配置catalina.sh jpda参数,主要是 ...

随机推荐

  1. supervisor-program配置

    [program:check_server_state]directory=/sunlight/shellcommand=/usr/bin/sh check_server_state.shautost ...

  2. flask中的模型

    1.什么是模型 模型,是根据数据库中表的结构而创建出来的class.每一张表对应到编程语言中,就是一个class表中的每一个列对应到编程语言中就class中的一个属性. 2.ORM的三大特征 1.数据 ...

  3. [LeetCode&Python] Problem 905: Sort Array By Parity

    Given an array A of non-negative integers, return an array consisting of all the even elements of A, ...

  4. [Algorithm] Good Fibonacci

    def good_fibonacci(n): if n<=1: return (n,0) else: (a,b)=good_fibonacci(n-1) return (a+b,a)

  5. C#字符串string以及相关内置函数

    C#字符串string函数 本文提供全流程,中文翻译. Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) Chinar -- 心分享. ...

  6. MyBatis 遍历数组放入in中

    必须要遍历出数组的值放入in中 如果直接将"'2','3','4','5','6','7','8'" 字符串放入in中,只会查出 inv_operate_type的值为2的数据,因 ...

  7. Blender 插件整理

    系统自带插件列表: 好用的第三方插件: Align Vertices to Grease Pencil, 对齐顶点到蜡笔,   https://blenderartists.org/t/addon-a ...

  8. AtCoder Grand Contest 031 B - Reversi

    https://atcoder.jp/contests/agc031/tasks/agc031_b B - Reversi Time Limit: 2 sec / Memory Limit: 1024 ...

  9. 《DSP using MATLAB》Problem 5.17

    1.代码 %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% ...

  10. ionic后台返回的数据是html模板的时候,解析html文件的方法:

    1.后台返回来的数据格式是: { "state":"100", "data":[ {"Content": "\ ...