当前位置: 首页 > news >正文

IDEA使用HotSwapHelper进行热部署

目录

    • 前言
    • JDK1.8特殊准备
    • DECVM安装
    • 插件安装与配置
    • 参考文档
    • 相关下载

前言

碰到了一个项目,用jrebel启动项目时一直报错,不用jrebel时又没问题,找不到原因,又不想放弃热部署功能
因此思考能否通过其他方式进行热部署,找了HotSwapAgent和HotSwapHelper,两者都试过,HotSwapHelper对比HotSwapAgent少了一些配置操作,稍微更友好点,但是前置环境两者都是一致的。(JDK8-181特殊版本以及Jdk版本对应的DECVM)后者是国人开发的摸索下来发现配置比较方便,网络上对此文章比较少因此考虑写一篇文章记录下

JDK1.8特殊准备

HotSwapHelper她是基于HotSwapAgent开发的,而HotSwapAgent截止到发稿前支持jdk1.8的最高版本是jdk-8u181,建议使用此版本,如果没有使用到指定版本则不能用。
已安装了别的版本的可以使用JavaUninstallTool工具进行java版本卸载
jdk-8u181和卸载工具已上传,请见文档底部相关下载

DECVM安装

HotSwapHelper她是基于HotSwapAgent开发的,而HotSwapAgent也是以来DECVM的,因此需要安装一个(文件已上传,请见文档底部相关下载,需配合上述的jdk-8u181使用
下载好后使用超级管理员进入cmd:搜索命令提示符,点击以管理员身份运行
在这里插入图片描述

输入命令执行jar包,java -jar DCEVM的全路径

java -jar D:\development\DCEVM-8u181-installer-build2.jar

在这里插入图片描述
找到对应的jdk版本(这里用的指定的181版本),然后点右下角安装

插件安装与配置

环境准备好后打开idea,
先配置好项目使用的jdk,让这个项目使用被DCEVM安装过的jdk,左上角点击File—Project Structure
在这里插入图片描述
点project,然后找到已经安装好DCEVM的jdk(刚刚安装的是181版本)
在这里插入图片描述
然后接下来开始安装插件
点击File—Setting,
在这里插入图片描述
找到Plugins,搜索Hotswap,找到HotSwapHelper,点击Install安装
在这里插入图片描述
安装完,重启后点击File----Setting,搜索HotSwap
在这里插入图片描述
将Reload classes after compilation设置成Always或者Asks,选Asks会每次热部署改代码的时候会自动弹一个提示让你是否重载,选Always就不弹。
然后点击确定,
然后需要修改项目启动配置,这里不知道不改会不会有问题,个人改了没有任何问题,保险点还是改一下
找到Run----Edit Configurations…
在这里插入图片描述
然后再最下面设置成Update classes and resources
在这里插入图片描述

在项目启动的时候可以选择热部署启动或者普通debugger启动,两者都会自动热部署,热部署配置完成!
在这里插入图片描述
想要Debug不热部署 只能够回到File—Setting,搜索Hotswap,把上面那一栏改成never。DebugMode和Debug with Hotswap都会同时失去热部署功能
在这里插入图片描述
这一点比较奇怪,一选择Always就两者都生效,一选择Never就两者都失效,暂时没找到解决办法

参考文档

链接: 使用 Idea + HotswapAgent 实现 SpringBoot 代码热部署(简易版)

相关下载

提取码88sb

http://www.lryc.cn/news/496311.html

相关文章:

  • 简单web项目自定义部署Dockerfile
  • 基础Web安全|SQL注入
  • SpringBoot -拦截器Interceptor、过滤器 Filter 及设置
  • C++小问题
  • avcodec_alloc_context3,avcodec_open2,avcodec_free_context,avcodec_close
  • 强化学习的几个主要方法(策略梯度、PPO、REINFORCE实现等)(下)
  • 计算机网络:IP协议详细讲解
  • 2024信创数据库TOP30之华为Gauss DB
  • 在线家具商城基于 SpringBoot:设计模式与实现方法探究
  • 九、Spring Boot集成Spring Security之授权概述
  • python之Flask入门—路由参数
  • txt地图格式处理
  • 《数据挖掘:概念、模型、方法与算法(第三版)》
  • GitLab CVE-2024-8114 漏洞解决方案
  • request和websocket
  • 一键生成后端服务,MemFire Cloud重新定义开发效率
  • 短视频矩阵的营销策略:批量混剪实现高效传播
  • 朗迪锋亮相2024人因工程与智能系统交互国际会议
  • spring boot3.3.5 logback-spring.xml 配置
  • Proteus8.17下载安装教程
  • 一次Kafka启动失败引出的问题
  • mysql 查询所有的触发器
  • 704. 二分查找 C++
  • SpringCloud Seata集成分布式事务管理 事务保护 XA AT两种模式的区别
  • node.js基础学习-querystring模块-查询字符串处理(三)
  • 电子电气架构 --- 车载网关GW连接外部IP Tester
  • 鸿蒙LiteOS的核心架构
  • C语言——实现计算房屋总价
  • 【380】基于springboot的闲置图书分享
  • element-ui的下拉框报错:Cannot read properties of null (reading ‘disabled‘)