Liubsyy / HotSecondsIDEA

HotSeconds是一款Java远程热部署的插件,可实现秒级一键化热更新。插件分为HotSecondsClient(IDEA热部署插件)和HotSecondsServer(服务端javaagent热更新插件),理论上来说可以热更新任何文件(java/xml/html/css/js等),也支持常用框架(Spring,MyBatis)的热更新,可以节省大量的传统部署java项目的时间。

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HotSeconds

GitHub License JDK-8 JDK-11 JDK-17 JDK-21 QQ

HotSeconds是一款Java远程热部署的插件(当然也支持本地热部署),分为HotSecondsClient(IDEA热部署插件)和HotSecondsServer(服务端agent),理论上来说可以热更新任何文件(java,xml,html,css,js等),也支持常用框架(Spring,MyBatis)的热更新,可以节省大量的打包->部署->启动的时间。
目前支持Java8,Java11,Java17和Java21。

插件特性

  • 热更新Java类,包括修改代码块,新增字段,新增方法,新增类,以及动态代理类
  • 支持框架的热更新,比如Spring, SpringMVC,SpringBoot,MyBatis等
  • 支持一些资源文件的上传和热部署
  • 支持热部署jar包中的.class和热部署整个jar包
  • 支持本地热部署和远程热部署,可本地编译也可远程编译
  • 支持获取远程字段值,远程执行方法
  • 支持自定义扩展,比如热更新某个文件的刷新逻辑

最新功能预览

  • 支持多classloader模式
  • 支持代理服务器连接,如果本地和容器不能直连的话可以试试这种方式
  • 支持 获取远程字段值,远程执行方法2.0
  • 支持连接多个不同的服务器(secret+ip+port多远程连接源)

文档链接

下载链接

插件扩展

本插件是可以支持自定义扩展的,比如热更新某个文件之后执行自定义的逻辑

使用演示

按文档安装完之后连接目标端口,右键选择Hot swap this file to remote即可实现热更新,也可以选择批量热更新

下面演示一个SpringMVC新增字段和方法的热部署

下面是一个MyBatis的xml文件的热更新

批量热更新文件,支持热更新修改过的文件和svn/git未提交的差异文件


问题反馈和交流

可以先看常见问题和解决方案,如果还有问题直接建Issues即可,同时也欢迎加QQ群 173093336 交流。

如果本插件对你有帮助,请点击 ⭐Star 支持一下吧,后续为大家带来更多的黑科技

Star History Chart

About

HotSeconds是一款Java远程热部署的插件,可实现秒级一键化热更新。插件分为HotSecondsClient(IDEA热部署插件)和HotSecondsServer(服务端javaagent热更新插件),理论上来说可以热更新任何文件(java/xml/html/css/js等),也支持常用框架(Spring,MyBatis)的热更新,可以节省大量的传统部署java项目的时间。

License:GNU General Public License v2.0


Languages

Language:Java 99.8%Language:Shell 0.1%Language:HTML 0.1%