Jrebel开发神器-热部署

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第19天,点击查看活动详情

Jrebel热部署

问题背景描述

对于一个java后端开发人员来说,很多时候我们修改一些java后端代码,或者一些mybatisxml文件。如果想要立马看到效果,咱们就不得不重启项目,才能看到最终的效果!!!

对于这样的一个问题,很多时候,如果项目比较简单,涉及到的模块也不多,重启项目,也就10来秒左右!!!

大部分的程序员,都直接忍了,重启就重启吧!!!^_^

哥们反手就给你个赞了!!!

image.png

可是,当你的项目不断的迭代,功能不断的完善,那你的项目,可能就会越来越庞大,那这个时候,每次重启项目,就不再是原来的10来秒了,可能就是30-40秒了或者1分多钟,那你还是按照原来的方式,那不得干废自己了?

这肯定是不能忍了呀!!!

说到这,可能就有人跳出来了,傻逼嘛,不是可以用devtools嘛!!!

springboot热部署,哥们之前已经分享过了,可以参考这里:点击查看

image.png

但是呢,使用了devtools,最终的效果,还是不尽人意!!!

为什么这么说呢?别急,且听哥们一一道来。

devtools热部署,当你不是前后端分离,例如一些:thymeleaf页面的渲染方式时,确实当你的html页面修改了,不用重启项目,都可以看到效果。这个确实是好的一方面。

但凡,有个但是,现在主流框架,大部分已经是前后端分离,这好的一方面,也无了!!!

当你修改java后端代码,或者mybatisxml文件时,也能立马看到效果,但是devtools热部署的原理,也是重启项目!!!

那就比较恶心了呀:例如,你修改java代码,当你写了一行代码,然后思考一下,或者网上复制粘贴一下时,devtools就帮你重启项目了呀,只要你改了代码,停顿一下,就重启,这个操作,就是不断的循环重启了。

网上复制粘贴,有点真实了,哈哈!!!

image.png

综上:devtools,没法用了呀!!!

那你有无解决的方案呢?

那肯定是有的,就是我们今天要讲的主要内容了:Jrebel开发神器-热部署

Jrebel热部署描述

JRebel是一款JVM插件,它使得Java代码修改后不用重启系统,立即生效!!!

所以说:Jrebel热部署,是真正意义上的热部署了!!!

当我们修改一些java后端代码,或者一些mybatisxml文件的时候,Jrebel可以做到,帮我们重新加载这些java类,重新加载xml文件,而不需要重启项目!!!

Jrebel热部署使用

idea中使用,这里idea的版本为2019.1.1

安装Jrebel插件

1.在线安装

File--> Settings

image.png

安装成功后,重启idea即可!!!^_^

2.离线安装

如果无法在线安装的,可以离线安装

官网下载插件:地址

93001ca860d03e5f5ad6b4891e545a4.png

image.png

选择我们刚下载好的插件:jr-ide-intellij-2022.2.0.zip即可

这里选择Jrebel版本为2022.2.0

Jrebel激活破解

安装完成后,重启idea,可以看到以下界面,表示已经安装成功:

File--> Settings

image.png

接下来,几时激活破解了!!^_^

GUID生成器:

点击该链接生成GUID:jrebel.cicoding.cn/guid

image.png

监听配置格式:

jrebel.cicoding.cn/GUID

生成的如下:

jrebel.cicoding.cn/4B068EB5-09…

File--> Settings --> JRebel 点击 Chanage license,填写URL邮箱地址

image.png

这里的url,就是刚才,咱们生成的GUID,再拼接http://jrebel.cicoding.cn的值了。

邮箱地址,就是你个人的邮箱,这个没有限制!!!

最后,再点击 Chanage license,就可以看到以下,激活成功的界面了!!!

image.png

就监听成功激活成功了!鼓掌!

image.png

Jrebel使用教程

接下来,就是怎么使用Jrebel热部署了!!!

看哥们操作!!!

打开我们的项目,可以看到,已经多了两个启动的图标,和原来自带的差不多,一个是运行,一个是调试

image.png

启动项目:

6154472a4add72bf8378009d50ecd2e.png

70f5075ac82cc0f7340693d4da50857.png

可以看到,有Jrebel打印的日志,表示使用了Jrebel热部署!!!

接着,咱们测试一下,修改一下java文件

image.png

可以看到,以下日志

JRebel: Reloading class 'xxxxx.SysConfigController'.

就是说我们修改了SysConfigController类,JRebel就帮我们Reloading该类!!!

那这个不就是真正意义上的热部署了嘛!!!

修改哪里,就reload哪里!!!确实牛呀!!!

c7c0aaeda66fe926aed291d2af1df7d7.jpg

今天就先到这里了,溜了溜了溜了!!!^_^

image.png

猜你喜欢

转载自juejin.im/post/7088124204926631950