第一节:何为 JRebel

JRebel 是一套 JavaEE 开发工具。JRebel 允许开发团队在有限的时间内完成更多的任务修正更多的问题,发布更高质量的软件产品。

JRebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率。

JRebel 是一款 JAVA 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对应用程序带来的影响。JRebel 使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。当程序员在开发环境中对任何一个类或者资源作出修改的时候,这个变化会直接反应在部署好的应用程序上,从而跳过了构建和部署的过程,每年可以省去部署用的时间花费高达 5.25 个星期。

以上摘自百度百科,简单来说,用了 Jreble,你启动一次应用程序,就能一直搞,不管你怎么改代码,它都能立马部署进去,这就是热部署

第二节:下载 JRebel

下载安装 JRebel 有两种方式,分别是本地安装和在 IntelliJ Idea 的插件市场中直接安装,我更喜欢使用前者,因为在 Idea 中直接安装经常会遇到网络问题,所以我这里直接演示如何先下载再安装(而且直接在插件市场安装的话,还不能选择插件的下载位置,只能使用默认的)!

到 Idea 官方的插件库(https://plugins.jetbrains.com/idea)中进行搜索下载

点进去可以选择最新版本,然后点击【Download】,下载下来的是一个.zip格式的压缩包:

注意:不要点击右上角的“Install to IntelliJ IDEA…”,这样会打开你的 Idea 然后在【设置】里面下载安装,同样很有可能会遇到网络问题!

第三节:安装 JRebel

第一步:解压

将下载下来的压缩包解压出来,可以解压出一个名为jr-ide-idea的文件夹,将其放到本地的某个目录中,比如我将其放到了我本地的E:\IdeaData\Plugins\JRebel目录下。

第二步:安装

打开 Idea 并打开设置中的【Plugins】,点击右边【Installed】右边的小齿轮,点击“Install Plugin from Disk…”:

然后在弹出的选择框中选择下载下来的压缩包(注意是整个压缩包):

最后点击【OK】自动安装,再点击【Apply】后,可见已经安装好的 JRebel:

第四节:激活 JRebel

这里我介绍三种激活方式,推荐第三种

安装好以后,打开 Idea,会在右侧自动打开 JRebel 的设置指导,若该页面关闭了,也可以点击如下按钮来打开:

4.1:官方激活

正常的激活方式就是通过官网激活,这张方式可以忽略,因为我知道你肯定是想白嫖的~~

4.2:本地激活

第二种方式是使用反向代理,伪造官方的服务器地址,相当于本地激活。

首先需要下载一个工具,下载地址如下:https://github.com/ilanyu/ReverseProxy/releases/tag/v1.4。因为我使用的是 Windows 系统,所以下载如下的版本:

下载下来的是一个.exe的应用程序,直接双击运行,运行后的效果(没运行效果,就这一个黑窗口,不要关闭):

然后打开 Idea,点击右侧绿色的 JRebel 按钮,进行如下操作:

如果使用上面的激活地址出现 “Incorrect license server group URL.Contact license severadministrator.”错误,是由于授权地址增加了GUID检测造成的,将 2 处的 URL 更换为下面这些地址中的某一个即可

再点击Activate JRebel,显示已激活:

4.3:在线激活

第三种方式就是通过别人分享的激活地址和邮箱来激活,我猜测这种方式跟方式二是一样的,只不过我们不是通过本地服务来验证了,而是将验证这个环节放到了提供激活地址的人那里!

我在网页https://jpy.wang/page/jrebel.html上找到了大神分享的激活网址,使用这个激活网址(邮箱可以随便填),也可以成功激活!

4.4:离线工作

不管是本地激活还是在线激活,在重启 Idea 或使用 JRebel 部署应用时,都会访问激活用的服务器校验证书,假如公网网络不能访问,或者许可证服务器没启动,都会导致 JRebel 不可用!

所以推荐采用离线模式来使用 JRebel,离线模式可以在激活后的 180 天内不用再激活,到期后只需要把许可证服务器启动一下,重新激活即可继续离线工作!

激活后,打开 Idea 设置,在【JRebel & XRebel】菜单下点击按钮【Work Offline】:

点击后如下:

可见,此时显示 JRebel 将会离线工作到约 180 天以后!如此一来,无论我怎么重启 Idea,它也不会让我重新激活了!

第五节:配置 JRebel

在使用 JRebel 之前,还需要在 Idea 中对它进行一些必要的设置,方便我们的使用!

5.1:自动编译

设置了自动编译,修改代码后 Idea 就会自动编译代码:

5.2:运行时编译

自动编译只在当前程序不在运行时有效,当程序正在运行时,修改代码后,Idea 并不会自动编译修改的代码,那么与之对应的资源文件就不会更新,导致 JRebel 不能识别资源变化,就无法实现自动热部署!所以还需要设置运行时编译:

5.3:响应时间

JRebel 最核心的作用是可以实现热部署,单纯热部署的时间默认是 2 min 26 秒:

通过拖动上图中的游标来修改,我将其修改为 5 秒(也有人修改为 1 秒,据说越短越好,没试过,暂时设置为 5 秒吧):

5.4:设置路径

假如你的计算机名称是中文的,那么你后续使用 JRebel 一定会遇到累死这种报错“JRebel-JVMTI [FATAL] Couldn‘t write to C:\Users\”!解决办法很简单,参考这里

第六节:使用 JRebel

6.1:Project configuration

首先,需要配置项目,也就是先要选择 JRebel 管理哪些代码。点击 Idea 左侧边绿色的 JRebel 按钮:

然后代码目录会以 JRebel 的形式打开:

对于那些需要被 JRebel 管理的模块,勾选上即可,比如我这里(最顶部的选择框可以全选所有代码模块):

注意:执行这个配置以后,在代码很多地方都会生成名为rebel.xml的文件,这些文件很重要,好在 Idea 会自动帮我们生成,所以不用自己配置!

6.2:Startup configuration

此时,可以通过点击右上角的这两个按钮来启动你的项目(在次之前要配置好自己的启动类):

左边的按钮是 Run with JRebel,右边的按钮是 Debug with JRebel,根据自己的需要来选择!启动开始以后:

6.3:Automatic compilation

启动成功以后,你可以任意修改自己的代码,修改后的代码自动编译,并被 JRebel 热部署到自己的项目上!比如我修改某个类的代码后点击保存,然后在 JRebel 的控制台会展示如下信息:

当修改代码并手动保存修改,IDEA 会自动编译代码(因为设置了运行时编译和自动编译),编译完成以后,JRebel 就会识别对应的资源文件发生了变化,随之重新加载(Reloading)编译后的资源文件(比如这里的.class文件),最后把重新加载的资源文件热部署到项目中!

友情提示:IDEA 本身是默认自动保存修改的文件的,因为我取消了 IDEA 自动保存的功能,所以在修改完代码后才需要手动保存修改!假如你没有关闭 IDEA 的自动保存功能,就不需要手动保存修改,IDEA 自动保存后,也能触发 JRebel “自动热部署”的功能!总之,不管是自动保存还是手动保存,都需要保存才能实现“热部署”!

~~

~~

~~