• 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操作

  • 相关阅读:
    MYSQL—— 基础入门,增、删、改、查(基础篇)
    作为测试你不可不知的iOS与Android差异点!
    MYSQL—— Insert的几种用法!
    mysql 使用Navicat Lite如何打开‘查询编辑器’,使用sql语句对表进行操作!
    mysql基础总结
    C#中的DllImport
    StructLayout特性
    c++中指针类型在c#中怎么对应?
    c++/java/c# 几种编程语言的指针、引用比较
    如何在C#中模拟C++的联合(Union)?[C#, C++] How To Simulate C++ Union In C#?
  • 原文地址:https://www.cnblogs.com/wpcnblog/p/9060690.html
Copyright © 2020-2023  润新知