一. 基础工作

  • 准备反向代理
    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, 甚至可以手写任意一个 UUID

    root@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 文件

image.png

jrebel-remote.xml 文件通过勾选上图中带☁️的火箭一列的项目复选框生成.

在实践过程中我漏掉了 jrebel-remote.xml文件, 因此重新打包上传, 当看到如下的输出时, 说明配置成功

image.png

点击如下带☁️的火箭图标按钮, 出现下面的输出消息说明远程热部署成功!

image.png

最后, 当有代码更改, 并触发自动构建后, IDEA 的Jrebel插件会自动同步代码的变更到远程服务器, JRebel Console 有成功同步的消息, 并且在远程终端上可以看到如下输出

image.png


developerworks
1.7k 声望266 粉丝

引用和评论

0 条评论