《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 juejin.im/post/5dac14d1f265da5b555f718b 「宇宙小神特别萌」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

一、Intellij热部署插件JRebel

包含:介绍jrebel、idea安装jrebel插件、激活jrebel(非免费,需要免费激活使用)、测试jrebel本地tomcat热部署、及解决jrebel插件不起作用

测试效果图:

1.测试,启动idea中的tomcat服务器。–注:我用是swagger,可以用浏览器或者postman工具测试接口(推荐)。

接口:返回Hello Spring Boot1 访问接口:查看返回数据,返回数据为Hello Spring Boot1
效果1.png 效果1.1.png

2.不关闭tomcat服务器-项目一直在运行中…..

将接口Hello Spring Boot1修改为Hello Spring Boot2 再次访问接口: 查看返回数据,返回数据为Hello Spring Boot2
效果2.png 效果2.2.png

此时,发现返回结果是Hello Spring Boot2,实现了在服务器运行的时候修改代码和数据、而tomcat服务器并没有重新启动,代码或数据已经实时更新。

介绍JRebel:

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

JRebel是一款Java虚拟机插件,它使得我们能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。

安装JRebel

安装和使用JRebel需要注意两点:激活和设置

1、在IDEA中一次点击 File->Settings->Plugins->Brows Repositories 2、在搜索框中输入JRebel进行搜索 3、找到JRebel for intellij 4、install 5、安装好之后需要restart IDEA

jrebel插件安装.png

激活JRebel

JRebel并非免费的插件,需要激活之后才能使用。

最新激活url地址 : http://139.199.89.239:1008/b8fdf475-b9f7-4146-b426-6e1bb5a17a16 下面的框中输入邮箱地址 , 可随意填 test@123.com. 然后点击右下角的激活按钮即可

在IDEA中一次点击 File->Settings->JRebel 并找到激活界面(因为我的已经激活了,点击change liense进入的激活界面)

jrebel激活.png

激活地址.png

操作方法就是点击Work offile 按钮即可:

开启方式.png

说明:

如果出现激活过期的情况下 , 可以重新生成一下GUID , 替换原来的GUID即可 . 在线生成GUID地址: www.ofmonkey.com/transfer/gu…

手动热部署:每次更改代码,不需要重启tomcat 使用Tomcat Web容器来开发的话,还需要配置运行项目, 如果web启动的时候,出现内存溢出现象则需要配置一下VM options:1099

手动热部署.png

如果你用Jetty容器,那就不用像上面这样配置,直接点击绿色小火箭,运行/调试都可以.

调试.png

此时,已经配置好JRebel,可以进行测试啦

测试效果如最上测试效果图一样!

JRebel没有效果时的相关设置及解决办法

此时虽然安装好了JRebel并成功激活了,但是我们使用JRebel debug的时候,发现修改代码后,热部署不起作用。因为还需要设置两个地方

1、设置项目自动编译

设置项目自动编译.png

2、设置 compiler.automake.allow.when.app.running ctrl+shift+A 或者 help->find action…打开 搜索registry

找到 compiler.automake.allow.when.app.running 并✔

running.png

3.有时候会发现Jrebel不起作用,即使是重启Tomcat都不起作用。

在Jrebel项目配置文件会存放项目的路径,我将项目复制了一份,项目路径变了,但是相应的配置文件中没有更改,所以,Jrebel就不起作用了。

解决办法如下: (1)如果项目中不存在rebel.xml 在Jrebel插件中点击生成rebel.xml (2)如果项目中已存在rebel.xml 在src/main/resources中修改项目的路径,查看项目路径是否正确!

生成rebel.xml : 本地tomcat热部署.png

本地tomcat热部署.png

本地tomcat热部署和远程tomcat热部署 建议:不要选择远程tomcat热部署,现在还没有配置远程服务器配置,会提示你 new remote server。此时,把远程不要勾选。

rebel文件生成.png

目前先实现本地tomcat热部署; 测试效果在最上面! 解决的问题:项目更改完代码,每次更改都要重新启动服务器,在开发阶段浪费很多时间,idea中tomcat服务器重启有时候会很慢,so. 就用idea jrebel插件,在项目运行中,更改代码后不用重启服务器,实现代码实时更新;

远程tomcat热部署,还需要配置好多,后续进行更新远程部署;

文章目录
  1. 1. 一、Intellij热部署插件JRebel
    1. 1.0.1. 测试效果图:
  2. 1.1. 介绍JRebel:
  3. 1.2. 安装JRebel
  4. 1.3. 激活JRebel
    1. 1.3.1. 此时,已经配置好JRebel,可以进行测试啦
  5. 1.4. JRebel没有效果时的相关设置及解决办法