一. 基础工作
- 准备反向代理
https://github.com/ilanyu/ReverseProxy/releases - 启动
./ReverseProxy_linux_amd64
- 下载 jrebel
https://www.jrebel.com/products/jrebel/download/prev-releases
下载jrebel-2022.3.1-nosetup.zip
, 不要用太新的, 新版本激活方法还没出来, 激活不了 解压
unzip jrebel-2022.3.1-nosetup.zip
解压后生成一个jrebel
目录
用uuidgen
生成一个 UUID, 甚至可以手写任意一个 UUIDroot@gf:~# uuidgen c6c127c5-e891-4356-8f69-ea7f82e72110
进入
jrebel
目录cd ./jrebel
激活
./bin/activate.sh http://10.0.0.59:8888/71e066ff-0862-44ba-a974-3d28588333d7 anything@gmail.com
服务器地址为反向代理监听地址和端口, 路径为上面生成的 UUID, 邮件地址随意
- 设置密码
java -jar jrebel.jar -set-remote-password 123456789
IDEA 远程连接的时候要用到
二. 项目打包
- 打包项目生成一个
jar
文件并上传到服务器 在服务器启动上传的
jar
应用程序nohup java -agentpath:/root/jrebel/lib/libjrebel64.so -Drebel.remoting_plugin=true -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9083 -jar xxx.jar &
-agentpath
指定动态链接库的位置-Drebel.remoting_plugin=true
开启远程插件-Xdebug
调试模式-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9083
这里只晓得监听到9083
端口,其他参数没哟深究, 不需要可以去掉-jar
这个就是要启动的应用程序jar
文件
下面为我的环境,其中参数--spring.cloud.nacos.discovery.ip=10.0.0.59
需要指定, 因为通过 VPN 连入公司网络, 否则访问不了, 如果网络不复杂可以直接访问的, 不需要改参数java -agentpath:/root/jrebel/lib/libjrebel64.so -Drebel.remoting_plugin=true -Xdebug -jar msx-trauma-1.0.0.jar --spring.cloud.nacos.discovery.ip=10.0.0.59
三. 配置 IDEA
File->setting->JRbel&XRebel->JRbel Remote Servers, 如图
如果出现如下错误,确保您 jrebel-remote.xml
已经生成到项目的 resources 目录并且打包到其中, 再上传至服务器, 也就是所打包后的 jar 文件必须包含 jrebel-remote.xml
文件
jrebel-remote.xml
文件通过勾选上图中带☁️的火箭一列的项目复选框生成.
在实践过程中我漏掉了 jrebel-remote.xml
文件, 因此重新打包上传, 当看到如下的输出时, 说明配置成功
点击如下带☁️的火箭图标按钮, 出现下面的输出消息说明远程热部署成功!
最后, 当有代码更改, 并触发自动构建后, IDEA 的Jrebel插件会自动同步代码的变更到远程服务器, JRebel Console 有成功同步的消息, 并且在远程终端上可以看到如下输出
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。