JRebel在IDEA中热部署失效,主因是激活未成功或rebel.xml未生成;需验证离线激活状态、生成rebel.xml、启用JRebel专属启动、开启自动编译与运行时编译,并确保代理参数注入及MyBatis-Plus等插件补全。

JRebel 在 IDEA 中无法热部署,八成是激活没走通或 rebel.xml 没生成 —— 不是插件装不上,而是后续配置断在了关键环节。
IDEA 插件市场安装 JRebel 失败的替代方案
Marketplace 搜索不到 JRebel,通常是因为 IDEA 版本太新(如 2025.2+)或插件已下架。官方自 2024 年起逐步将 JRebel 迁移至 JRebel & XRebel 合并插件,旧版独立插件不再更新。
- 直接访问 JetBrains 插件库页面,下载最新
jrebel-and-xrebel-*.zip包(截至 2026 年 8 月最新为2026.2.1) - IDEA 中进入
Settings → Plugins → ⚙️ → Install Plugin from Disk…,选中 zip 文件 - 安装后必须关闭所有项目窗口再重启 IDEA,否则
JRebel图标不显示、Tool Windows里找不到入口 - 验证是否加载成功:菜单栏出现
JRebel项,且右下角状态栏有闪电图标(⚡)
激活失败报 Unable to connect to license server 的实操解法
这是最常卡住的一步。在线激活依赖外网访问许可服务,但多数企业网络/代理/防火墙会拦截 https://jrebel.qekang.com 等域名,导致超时或拒绝连接。
- 优先尝试离线激活:访问
Settings → JRebel & XRebel → Activate → Offline Activation,上传官方账户下载的jrebel.license文件(需提前注册账号并申请) - 若只有试用需求,可用反向代理绕过:下载
ReverseProxy_windows_amd64.exe(或对应 macOS/Linux 版),运行后保持后台常驻,再点击激活按钮 - 手动构造 Team URL 时,
{GUID}必须是标准 UUID 格式(如123e4567-e89b-12d3-a456-426614174000),不能带空格或中文;邮箱字段可填任意格式(如a@b),仅用于占位 - 激活后务必检查状态栏图标是否变为绿色 VALID,否则后续所有配置无效
热部署不生效?重点查 rebel.xml 和启动模式
插件激活只是前提,真正让类/资源热更新的是 rebel.xml 文件 + JRebel 启动代理。缺一不可。
- 打开
View → Tool Windows → JRebel,勾选项目中所有模块(尤其是main和resources目录),点击Generate rebel.xml—— 每个模块根目录下应生成该文件,内容含<classpath>和<web>节点 - 启动必须用 JRebel 专属按钮:不是普通
Run或Debug,而是工具栏上带闪电图标的JRebel Run或JRebel Debug(图标为 ⚡▶️ 或 ⚡?) - 确认 VM options 已注入代理参数:在
Run → Edit Configurations → Templates → Application中,勾选Enable JRebel agent;若手动填写,Windows 是-agentpath:C:\path\to\jrebel\jrebel64.dll,Linux/macOS 对应.so/.dylib - MyBatis-Plus 用户额外注意:XML 映射文件默认不热重载,必须安装
JRebel MyBatisPlus Extension插件并重启 IDEA
修改代码后仍要重启?检查自动编译链路是否打通
即使 JRebel 启动成功,若 IDEA 编译未联动,改完代码也不会触发 reload。
- 开启自动构建:
Settings → Build, Execution, Deployment → Compiler → Build project automatically✅ - 启用运行时编译:
Ctrl+Shift+Alt+/ → Registry → compiler.automake.allow.when.app.running✅(此开关决定 “Update Application” 按钮是否可用) - 修改 Java 文件后,不要只点
Build → Build Module,而应直接按快捷键Ctrl+Shift+F9(重新编译当前类),或确保光标在编辑器内时点击工具栏Update Application(闪电图标旁的圆环箭头) - 观察控制台输出:成功热更会有类似
JRebel: Reloading class com.example.MyService日志;若只打印Class 'X' is not instrumented,说明该类未被 JRebel 管理,大概率是rebel.xml路径配置错误或模块未勾选
真正难调的不是装不上,而是 rebel.xml 生成路径错位、代理未注入到正确 JVM 实例、或自动编译开关被忽略 —— 这三处任一缺失,都会让热部署静默失效,表面看着一切正常,实则毫无反应。


















