简介
JRebel是一款专为Java程序开发人员设计的热部署插件,使用 JRebel插件后,不需要重启项目即可马上应用更改,加快了Java 开发流程,提高开发效率。
支持的IDE
安装
本教程基于IntelliJ IDEA进行安装,版本2021.1.3 Ultimate,JRebel版本:2022.3
传送门: IDEA配置JRebel热部署(超级详细图文教程)
注意事项:此教程未说明对Mybatis的支持,如果需要使用Mybatis则需要额外安装一个JRebel mybatisPlus extension插件,且项目的mybatis plus starter版本为3.1.1+
使用
JRebel 支持的操作:
-
新增方法、类、接口等
-
修改方法体内部代码,返回值类型
-
修改部分yaml配置文件
-
新增/删除类的字段、方法等
-
新增/删除/修改 Spring Bean 配置
-
新增/修改资源文件
-
调整日志级别
JRebel 不支持的操作:
-
修改类的继承关系
-
修改部分类的注解,例如项目初始化相关注解
-
修改枚举
-
修改类的类加载器关系
-
修改匿名类
使用JRebel配置远程服务器的热部署功能
jrebel同样支持远程服务器的热部署功能,传统项目部署方式需要先停服,然后删除旧包,发布新包再启动,耗时较长,使用jrebel无需重启项目,可以直接动态加载更改的类到运行中的JVM。
本节使用Centos服务器+docker环境演示,开发环境使用docker-compose插件一键部署
一.服务器配置
1.1. 服务器安装JRebel Agent依赖
首先找到本地idea安装破解好的JRebel文件夹,一般路径位于
C:\Users\Administrator\AppData\Roaming\JetBrains\IntelliJIdea2021.1\plugins\jr-ide-idea\lib
拷贝此文件夹放到服务器任意一个目录,例如/lib/jrebel6,如果是docker-compose则直接放在项目某文件夹下,在compose文件中使用COPY命令复制文件夹到项目环境
1.2.设置访问密码
服务端需要设置访问密码,和本地开发环境进行连接,提升安全性,在项目启动命令之前执行以下命令:
java -jar /lib/jrebel6/jrebel.jar -set-remote-password 要设置的密码
1.3.启动脚本添加参数
-agentpath:/lib/jrebel6/lib/libjrebel64.so -Drebel.remoting_plugin=true
其中/lib/jrebel6/lib是存放jrebel依赖的路径,配置好后需要将此项目先发布到docker使其生效,并开放相关端口,让本地IDE可以连接到远程
二.idea配置
2.1 打开JRebel Panel,勾选远程部署复选框
勾选此选项后,项目的resources目录下将会多出来一个rebel-remote.xml文件,后面部署到服务器会用到
2.2 配置服务器地址
打开Idea设置->JRebel&XRebel->JRebel Remote Servers,点击+号
输入服务器访问地址,没有域名的话ip+端口也可以,测试连接,连接成功,此时配置完毕
注意: 必须要启动本地项目,且本地项目启动后,更改的代码首先需要在本地热部署成功,才能点击如下按钮更新到远程服务器
显示如下弹窗,热部署成功: