Idea插件之Jrebel热部署

标签: 无 分类: 未分类 创建时间:2021-07-30 01:22:47 更新时间:2024-12-03 13:01:37

Jrebel我感觉一点都不好使,首先我配置静态文件自动部署就费了好大的劲,然后对于java文件的修改和反应,也是非常的迟钝的。

1.破解

原先使用 guid 进行激活的教程网络上很多,但是后来更新到idea2023.1版本之后,激活方法就失效了,出现了:“LS client not configured”,要么就是下载老版本的 Jrebel 进行激活,要么就是使用新的激活步骤。

(1) 下载反向代理工具

(2) 然后激活Jrebel,输入地址:http://127.0.0.1:8888/88414687-3b91-4286-89ba-2dc813b107ce

这种方式,不能关闭反向代理工具,否则再次打开的时候,还是会出现激活失败的问题。

2.静态文件

静态资源文件,主要就是html、css、javascript等文件,我放在了resource文件夹下,希望在修改任意一处的时候,实现自动部署。

【尝试方法】
(1) 配置rebel.xml
jrebel默认不监听静态资源的更新,可以通过添加rebel.xml,放在项目的resource目录下,实现对静态文件的监听,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<application generated-by="netbeans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.zeroturnaround.com"
xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_1.xsd">

<classpath>
<!--<dir name="/path_to_project_root/target/classes"></dir>-->
<dirset dir="D:\xxx\databases">
<include name="**/target/classes"/>
<include name="**/src/main/resources"/>
</dirset>
</classpath>

<web>
<dir name="D:\xxx\src\main\webapp"></dir>
<dir name="D:\xxx\src\main\resources"></dir>
<!--</link>-->
</web>

</application>

其中项目之后,可以看到Jrebel输出。

在项目的根目录下,也会看见有一个自动生成的.rebel.xml.bak文件,应该在这里写也可以。

经过上面的操作,结果,还是不能进行html文件修改之后的自动部署。

(2) 修改application.yml文件
我在配置文件中,增加了如下的内容,关闭了页面的缓存,不过也还是不生效。

1
2
3
4
spring:
## 关闭页面缓存
thymeleaf:
cache: false

(3) 启动方式上,配置了JRebel+XRebel

【解决方法】
(1) 使用idea自己的自动更新
说是解决方法,其实我觉得可能不太合适。我的操作方法就是,打开 Run/Debug Configurations 配置框,设置 On ‘Update’ action 为 更新classes和resources。但是这样做之后,即便是不使用JRebel也能实现修改js文件然后刷新页面,实现自动部署了,这就和JRebel没有半点关系了。

(2) 配置web的target
我重新更新了rebel.xml,但是这种方式也不见得完全正确,就会出现偶尔失效的情况,就是更改了js文件,过了一会,重新刷新页面,不会生效。但是同时更改了java文件之后,等待了JRebel输出相关重新加载日志之后,js的修改也就起作用了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<application generated-by="intellij" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.zeroturnaround.com"
xsi:schemaLocation="http://www.zeroturnaround.com http://update.zeroturnaround.com/jrebel/rebel-2_3.xsd">

<id>databases</id>

<classpath>
<dir name="D:\xxx\target\classes"></dir>
</classpath>

<web>
<link target="/">
<dir name="D:\xxx\src\main\resources"></dir>
</link>
</web>

</application>
参考文章:
1.jrebel热部署不起作用_Spring Boot 五种热部署方式,极速开发就是生产力_weixin_39644146的博客-程序员宅基地_jrebel热部署不起作用 这里主要就是列举了如何进行热部署的几种方式:模板热部署、使用调试模式Debug实现热部署、spring-boot-devtools、Spring Loaded、JRebel
2.Application configuration using rebel.xml rebel.xml文件的配置说明,这里提供了一个示例,可能对部署web程序有用。
3.请认真配置rebel.xml(IDEA) 这里也说明了要配置rebel.xml文件
4.详解 JRebel 的使用 对于 Web 项目需要以”war exploded”形式发布,不能以”war”包形式发布。因为只有 war exploded 才会出现 update classes and resource
5.idea中JRebel不生效解决办法_yaoji8151的博客-程序员宅基地_idea jrebel不生效 配置JRedel离线模式和检测时间、设置JRedel需要热部署的项目、启动设置。如果不生效,1.查看idea设置自动加载项目;2.Shift+Ctrl+Alt+/ 点击 Registry 勾选 compiler.automake.allow.when.app.running
6.Jrebel 热部署不生效? 主要有下面几个步骤:确保插件安装成功,确保启动了编辑器自动编译的功能,确保是以Jrebel方式启动,确保对项目进行了热部署的设置,但是我还是没有成功

问题

(1) 热部署有一定的次数限制
在我使用JRebel的时候,出现的比较奇怪的现象,就是我修改java文件之后,前几次都是可以自动部署的,但是修改了几次之后,在修改java文件,就无法实现自动部署了。还有就是,热部署的时候,总是反应很迟钝,偶尔会出现不起作用的情况。

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。