软件简介
java热更新插件,无需重启Java流程,实现代码更新,提高开发效率,节省时间陪女友!
功能模块
hot-reload-core:核心处理逻辑,编译和加载class。
hot-reload-agent:javagent入口。
hot-reload-watcher:监控当地java和class文件的变化,实现当地流程的热更新。
hot-reload-server:apiserver,提供加载远程JVM过程的接口。
架构
支持本地模式和远程模式。
基本原理
watcher监控当地文件变更(.clas&.java),缓存变更路径。
将变更文件上传到server并保存在临时目录中(本地模式忽略了第二步)
Instrumentation对象通过javagent技术atach到jvm进程获得。
加载hot-reload-core编译java文件(如有)
通过instrumentation.redefineclaseses()重新定义和加载class。