Idea热加载插件JRebel激活及使用教程

article/2025/10/14 12:37:01

前言

Java 开发领域,热部署一直是一个难以解决的问题,目前的 Java 虚拟机只能实现方法体的修改热部署,例如使用devtool来实现热部署,但是在功能上它也有所限制,如果新增方法或者修改方法参数后,热部署是不生效的。因此对于整个类的结构修改,仍然需要重启虚拟机,对类重新加载才能完成更新操作。对于某些大型的应用来说,每次的重启都需要花费大量的时间成本。

因此,在这里为大家带来一款Idea集成的热加载插件-JRbel。但是这个插件是需要收费的,故在这里为大家带来激活使用的详细教程,手把手教学一波。亲测可用!

Jrbel插件下载

首先在Idea中找到setting->plugins,在MarketPlace中搜索该插件。

点击“应用”后,按要求重启一下Idea,使下载的Jrebel插件生效。

这个时候在Idea主界面侧边栏上就有Jrebel的安装指南出现了。

然后我们根据Jrebel的安装指南进行安装即可。

激活Jrebel

安装第一步就需要对Jrebel进行激活,这里笔者推荐第一种激活方式。

然后我们需要配置license server地址,这里我们通过一个JrebelBrainsLicenseServerforJava的激活jar包来实现,通过将jar包放在服务器上运行,然后就可以通过我们自己的服务器来作为license server地址了。jar报地址来源于链接: https://pan.baidu.com/s/1rrn-6F26JpD5RSsbJV3-hQ 密码: dscu。也可以在笔者资源里自行获取。

如果放在服务器上,特别是腾讯云,阿里云之类的,记得开放服务器防火墙,安全组策略以及Linux系统防火墙上的1008端口。没有服务器也不要紧,用自己电脑也可。只不过不能一直把jar包运行着。

通过java的命令运行jar包。

java -jar JrebelBrainsLicenseServerforJava-1.0-SNAPSHOT-jar-with-dependencies.jar -p 1008 &
C:\Users\young\Desktop\开源工具集>java -jar JrebelBrainsLicenseServerforJava-1.0-SNAPSHOT-jar-with-dependencies.jar -p 1008 &
2023-02-05 11:00:30.612:INFO:oejs.Server:jetty-8.y.z-SNAPSHOT
2023-02-05 11:00:31.107:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:1008
License Server started at http://localhost:1008
JetBrains Activation address was: http://localhost:1008/
JRebel Activation address was: http://localhost:1008/{tokenname}, with any email.

这里jar包就运行成功了,可以看到,JRebel地址还需要一个{tokenname},这里可以通过GUIDS在线获取工具进行获取。得到一个随机的tokenname值,如果过时了,重新刷新生成即可。

然后填入最终的license server地址:

http://192.168.98.1:1008/ fab341e4-f267-41df-ad7d-d37a3952e710
注意:的是这里要添加上jar包的开放端口1008

然后输入一个可用的邮箱地址,即可。点击激活便可成功!

但是到这还没完,虽然现在 Jrebel就能正常使用了,但很多人往往用不到几天就提示激活失败, 无法使用了,甚至jar包结束运行后激活就失败了。原因在于Jrebel激活之后默认是联网使用的 , 在该模式下 , Jrebel会一直联网监测激活信息。所以要调为离线使用的,操作方法就是进入Jrebel设置中点击Work offile 按钮即可。使其变为离线模式即可。

另外我们也可以在这设置手动热部署的间隔平均时间。

这样激活就算彻底完成了。

但是这时候仅仅这点配置,功能还是不能正常使用的。还需要我们在Idea中设置自动编译。

配置自动编译

找到setting->build,Excution->Compiler,并勾选Build project automatically。

然后找到setting->Advanced Setting,勾选Compiler中的

Allow auto-make to start even if developed application is currently running

这里笔者是基于idea2022版本配置的,基本上配置完成就可以了。

本地热部署使用

配置完Jrebel后,如果在本地使用,可以通过Idea界面左下角的Jrenel面板对自己的项目进行设置即可。

左侧的图标对应的本地热部署,右侧的对应远程热部署。

勾选成功后项目或者模块中的src/resource目录下回生成一个rebel.xml文件

主启动类,和运行栏也会出现Jrebel运行的图标。

如果发现启动后部分更新效果并没有,也可尝试在启动类上配置一下更新资源的配置。

都配置好了以后,可以先试一下,第一次运行要重新编译,打包,执行。如果不生效可以重启一次idea, 一般来讲重启后都可以生效。

远程热部署使用

远程热部署需要在服务器上安装并JRebel,成功后需要设置远程连接的密码,在JRebel的根目录下执行以下命令:

java -jar jrebel.jar -set-remote-password 123456
这里设置的123456则是远程的密码,在IDEA连接服务器的时候需要。

此时将Spring Boot项目打包成一个Jar,上传到服务器,执行以下命令启动项目:

nohup java -agentpath:/www/server/jrebel/lib/libjrebel64.so  -Drebel.remoting_plugin=true -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9083 -jar xxx.jar &

libjrebel64.so这个文件是JRebel的lib目录下的文件。-Xdebug之后到-jar之前这些命令使是开启远程调试的,如果不需要的可以去掉。

此时在IDEA中需要设置连接到刚才启动的远程项目,打开File->setting->JRbel&XRebel->JRbel Remote Servers,如下图:

步骤如下:

  1. 点击+号添加一个服务

  1. 填写信息

  • server name随便起个服务的名字

  • server URL格式:http://ip:port,这里的ip是服务器的IP,port是项目端口号。

  • 远程密码则是上文设置的JRebel的密码123456。

  1. 点击OK,即可添加成功。

以上设置成功后,点击右上角的远程部署按钮,下图中的②号按钮,则会自动更新服务器上已启动项目的代码使之本地修改在服务端自动生效:

只要本地有了更改,点击远程热部署按钮,则会自动上传代码到服务器端并实时更新,不用重新启动项目。

注意:如果是多模块开发,比如分为api(最终的Jar包),commons(公共包),service(业务层的包),最终打包运行在服务器端的是api这个模块,其余两个模块都是属于依赖模块,虽然在JRebel远程热部署选项中都勾选了,但是它们的代码更改并不会在服务端生效。

这个如何解决呢?

很简单,在api项目下的rebel-remote.xml文件中将其余两个模块添加进去,默认的如下:

<?xml version="1.0" encoding="UTF-8"?><rebel-remotexmlns="http://www.zeroturnaround.com/rebel/remote">
<id>xx.xx.xx.api</id>
</rebel-remote>

添加之后的代码如下:

<?xml version="1.0" encoding="UTF-8"?><rebel-remotexmlns="http://www.zeroturnaround.com/rebel/remote">
<id>xx.xxx.xx.api</id>
<id>xx.xx.xx.service</id>
<id>xx.xx.xx.core</id>
</rebel-remote>
以上的<id>标签中指定的是模块的包名(package)。

好了,Jrebel插件的激活使用就搞定了,对小伙伴有帮助的话欢迎留言收藏~


http://chatgpt.dhexx.cn/article/LMRdIxsx.shtml

相关文章

JRebel2023.3 插件使用详解

简介 JRebel是一套JavaEE开发工具。 Jrebel 可快速实现热部署&#xff0c;节省了大量重启时间&#xff0c;提高了个人开发效率。 JRebel是一款JAVA虚拟机插件&#xff0c;它使得JAVA程序员能在不进行重部署的情况下&#xff0c;即时看到代码的改变对一个应用程序带来的影响。J…

2023版本最新IDEA的JRebel使用

目录 Rebel介绍一、JRebel安装方式1、插件仓库安装&#xff08;推荐&#xff09;2、下载zip文件包进行安装3、Jrebel使用方式(1)、方法一(不适用最新版本IDEA)(2)、方法二(适用于最新版) 二、配置方式1、设置项目自动编译2、设置3、勾选项目&#xff0c;然后以Rebel方式启动 总…

2023 Idea 热部署 JRebel 插件激活方法

2023 Idea 热部署 JRebel 插件激活方法 1. 下载源代码 进入下面 github 地址 clone 代码到本地 https://github.com/Byron4j/JrebelLicenseServerforJava 2. 编译和打包 cd /Users/daixiaohu/Desktop/JrebelLicenseServerforJavamvn clean package3. 运行项目 cd target/jav…

IDEA配置JRebel热部署(超级详细图文教程)

目录 JRebel是什么JRebel安装方式JRebel激活相关设置JRebel的使用热部署不生效解决方案监控无效问题&#xff08;设置指定的监控目录&#xff09; JRebel是什么 JRebel 是国外团队开发的一款收费工具&#xff0c;JRebel 允许开发团队在有限的时间内完成更多的任务修正更多的问题…

idea中热部署插件JRebel的激活方式

idea中热部署插件JRebel的激活方式 一、打开jrebel 激活面板&#xff0c;如图&#xff1a; 二、选中Team URL&#xff08;connect to online licensing service&#xff09; 1、在上面的框中输入激活的url地址 http://127.0.0.1:8888/132d042c-3b1a-4c45-9044-b7897c3de7882…

Qt 添加 样式(styleSheet)

Qt 添加 样式&#xff08;styleSheet&#xff09; 在学习Qt的过程中&#xff0c;在Qt Creator里面&#xff0c;通过选择UI或者对应的里面的控件&#xff0c;在其属性中&#xff0c;即styleSheet中&#xff0c;在随后弹出的对话框中可以编辑样式&#xff0c;非常好用&#xff0…

injected stylesheet 导致页面样式异常

问题现象&#xff1a;如果你在开发过程中遇到页面中某个控件样式异常了&#xff08;无法正常显示&#xff09;&#xff0c;然后打开浏览器控制面板&#xff0c;发现一大片灰色字体的&#xff0c;并且右上方还写着injected stylesheet&#xff0c;如下图所示&#xff1a; 这有…

社区版IDEA创建stylesheet文件

社区版IDEA是不能直接创建stylesheet文件的&#xff0c;可以通过新建文件&#xff1a;文件名.css后缀。另外社区版IDEA在写css文件时是没有提示的&#xff0c;完全手敲。 1、 2、 将css文件链接到HTML文件中的方法&#xff1a; <link rel"stylesheet" href&quo…

qt designer stylesheet 设置字体加粗无效

估计是qt designer的bug&#xff0c;qt designer stylesheet 设置字体加粗无效。 解决办法是在右侧的属性窗口对字体进行加粗设置&#xff0c;注意需要将stylesheet里面对字体的加粗设置删除。

QT styleSheet image属性不生效问题

目录 前言修改 前言 想要在QToolButton stylesheet上面实现&#xff0c;在ui编辑界面上给QToolButton添加Icon属性和setautoraise为true的效果。如图 这样的效果是图片大小不会随着QToolButton变大而变化&#xff0c;但是会随着QToolButton缩小而变小。所以在styleSheet中要…

“user agent stylesheet“问题

“1、user agent stylesheet”问题 昨天在用F12调试css的时候&#xff0c;发现了自己写的很多样式都被这个“user agent stylesheet”覆盖了&#xff0c;写的样式都无效了&#xff0c;垂死挣扎了很久&#xff0c;还是未果o(╥﹏╥)o… … 【就是这样式的 ↓↓↓】 2、user agen…

QtDesigner中的styleSheet

一、为单个控件添加样式 QLabel{ color:black; font: 75 9pt "微软雅黑"; border-radius: 5px; radius:2px; background:qlineargradient(x1:0, y1:0, x2:1, y2:0,stop:0 rgb(112, 144, 101),stop:1 rgb(107, 255, 119)); }二、为整个软件的同类控件添加样式 2.1 添…

Qt StyleSheet的设置方法

Qt设置StyleSheet的方法值得探索一下&#xff0c;现在先完成主要的内容&#xff0c;以后再进行细调吧。 Qt设置按钮为圆形https://www.cnblogs.com/tsh292278/p/11275819.html 通过Qt 的样式表实现圆形按钮&#xff0c;其也可以实现圆角按钮&#xff0c;当然也可以使用其他的…

qt QTableWidget stylesheet

自己写了一个函数&#xff0c;封装QTableWidget的样式&#xff0c;根据自己的需求进行修改单元格的文字颜色、背景颜色等。 I wrote a function to encapsulate the style of QTableWidget and modify the text color and background color of the cell according to my own r…

styleSheet简单介绍

styleSheet可以方便修改样式 要整体修改QPushButton可以如下&#xff1a; QPushButton{border: 2px solid gray;border-radius: 10px;padding: 0 8px;background: yellow; } 要单独修改QPushButton: QPushButton#pushButton_2{border: 2px solid gray;border-radius: 10px;p…

root stylesheet报错

当/deep/语法报root stylesheet错时&#xff0c; 原因&#xff1a;因为使用了less或scss的原因&#xff0c; 解决方式&#xff1a;使用 ::v-deep代替 /deep/

QPushButton的styleSheet格式

有时候要改变Qt界面控件的样式&#xff0c;可以修改styleSheet来实现。 可以在主界面修改样式&#xff0c;那么主界面上的所有QPushButton都会修改样式的。 QPushButton {color: white;background-color: #27a9e3;border-width: 0px;border-radius: 3px; }QPushButton:hover {…

我的QT Creator学习笔记(十九)——Qt样式表

参考文献&#xff1a;《Qt Creator 快速入门》第三版 霍亚飞编著 Qt样式表的术语和语法规则与HTML CSS基本相同。 一、样式规则 样式表包含了一系列的样式规则&#xff0c;每个样式规则由选择器&#xff08;Sekector)和声明&#xff08;declaration)组成。选择器制定了受规则…

PyQt(Python+Qt)学习随笔:Qt Designer中部件的样式表styleSheet属性

styleSheet属性是定义部件外观的属性样式表,在Qt中styleSheet样式表是类似于html的css样式一样的方法,只是时专门为Qt中的部件开发的。styleSheet的定义语法也是类似CSS,并且是跨平台支持的。 由于每个部件都可以定义自己的样式,也可以通过QApplication.setStyleSheet()…

【Qt开发】StyleSheet使用总结

概述 转眼七年过去了&#xff0c;我是一个彻底拥抱过MFC的人&#xff0c;记得老大的一个需求要把按钮做成圆角&#xff0c;并添加背景颜色&#xff0c;做前端html的可能认为很简单&#xff0c;然而放到MFC上那可真的是很...很麻烦的&#xff0c;自定义类继承Button &#xff0…