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表示使用套接字传输。 
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操作

原文地址:https://www.cnblogs.com/wpcnblog/p/9060690.html

时间: 2024-12-12 03:57:24

SpringBoot工程+热部署进行远程调试的相关文章

SpringBoot工程热部署

SpringBoot工程热部署 1.在pom文件中添加热部署依赖 <!-- 热部署配置 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency> 2.修改配置 添加依赖后再启动项目我们发现并不起作用.出现这种情况,并不是热部署配置问题,其根本

springboot之热部署

springboot的热部署使用场景: 1.本地调试 2.线上发布 银行和金融交易类的网站,需要全年不间断的运行. 优点: 1.无论本地还是在线上,都适用. 2.无需重新启动. java热部署和热加载联系: 1.不重启服务器编译/部署项目 2,基于java的类加载器进行实现 热部署和热加载的区别: 部署方式: 1.热部署更加偏向于在服务器运行时重新部署项目. 2.热加载只是会重新加载改变的类或者说是编译的.class文件 实现原理: 1.热部署直接重新加载整个应用.(释放内存,重新启动这个应用,

CloudStack 4.3 源码部署+eclipse远程调试

CloudStack 4.3 源码部署 系统环境 vmware workstation 下创建一个虚拟机 装有Centos6.5  64bit 安装软件 1.yum install git mysql mysql-server mkisofs gcc python MySQL-python openssh-clients wget 2.下载maven 并解压到 /root/maven 目录 3.下载ant 并解压到 /root/ant 目录 4.下载sun jdk 7 并解压到 /root/jd

springBoot开启热部署

springBoot开启热部署 这里使用devtools工具开启热部署 〇.搭建springbboot基础环境 一.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> <scope>true<

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

[开启和进行远程调试]参考https://blog.csdn.net/WSYW126/article/details/748536801.tomcat:配置catalina.sh jpda参数,主要是address./catalina.sh jpda start 2.springbootmaven插件 or命令行 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-b

打包SpringBoot工程并部署

使用工具:Eclipse Linux下JDK版本:jdk-7u79-linux-x64.tar.gz 一.打包成jar并部署 步骤如下: 首先上pom.xml: 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apac

[springBoot系列]--springBoot的热部署

在SpringBoot中启用热部署是非常简单的一件事,因为SpringBoot为我们提供了一个非常方便的工具spring-boot-devtools 或者 springloaded,我们只需要把这个工具引入到工程里就OK了,下面我就说一下怎么引入spring-boot-devtools. 一.修改pom.xml 我们只需要在pom.xml里,引入相应的jar包就行了.  --optional=true,依赖不会传递,该项目依赖devtools:之后依赖myboot项目的项目如果想要使用devto

基于tomcat插件的maven多模块工程热部署

内容属原创,转载请注明出处 写在前面的话 最近一直比较纠结,归根结底在于工程的模块化拆分.以前也干过这事,但是一直对以前的结果不满意,这会重操旧业,希望搞出个自己满意的结果. 之前有什么不满意的呢? 1. 基于maven拆分模块后,热部署的效果不好,经常出故障. 2. 对于多个子web工程,不能做到任意一个web工程都可以放到tomcat里运行,要在外面搞个壳子组合多个工程. 于是,有了这纠结的一周,也有了此文. 本文关于什么 如标题所言,本文涉及到如下几个内容: 1. maven多模块工程 2

spring-boot-devtools (springboot的热部署)

热部署是什么 大家都知道在项目开发过程中,常常会改动页面数据或者修改数据结构,为了显示改动效果,往往需要重启应用查看改变效果,其实就是重新编译生成了新的 Class 文件,这个文件里记录着和代码等对应的各种信息,然后 Class 文件将被虚拟机的 ClassLoader 加载. 而热部署正是利用了这个特点,它监听到如果有 Class 文件改动了,就会创建一个新的 ClaassLoader 进行加载该文件,经过一系列的过程,最终将结果呈现在我们眼前. 类加载机制 Java 中的类经过编译器可以把代