尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

JRebel的下载及激活

JRebel的下载及激活 前言JRebel是一个用来热部署Java项目的工具为什么不用idea自带的ctrl shift F9主要是JRebel还可以热部署更丰富的内容。原理上前者是自定义 ClassLoader 字节码增强 运行时类替换具体是自定义类的加载且对字节码的转换方式也进行了修改用更有助于直接替换的方式实现对应的字节码类似于都换成可替换的参数这样就可以直接替换最后监听到文件变化后则替换class文件并更新资源文件后者底层依赖的是Java HotSwapJVM HotSwap原理是JVM在不会重新加载类只是替换方法体字节码。在此从代码结构、框架层、资源文件的角度进行一个简单的对比可热部署的类型IDEA CtrlShiftF9JRebel方法体就是包含在{}里的方法、逻辑、局部变量不包括方法的注解、变量的修改之类的总之还是很多局限的✅✅类(bean)文件“新增/删除/修改”类的“方法/字段”修改参数、返回值、接口、注解等等大致就是类结构的修改此外还有新增删除类❌(只有方法体修改的情况才能更新)✅删除类时部分情况可能需要重启ORMHibernate、MyBatis-Plus、MyBatis等的Entity / Mapper包括java、mapper.xml❌✅配置文件xml/ properties / yml❌✅JRebel是大部分支持但不是全部除非使用 Spring Cloud或 Spring DevTools页面模板html/vue/Thymeleaf模板❌如果加了热部署包那页面文件也可更新✅部分框架本身支持下载、激活、配置1、下载1.1、idea插件里搜jrebel下载JRebel and XRebel下载完成后resart IDEA2、激活2.1、打开设置打开设置→JRebel XRebel→点击激活按钮2.2、贴地址密码去这里复制激活地址和密码(该链接下面那个无限试用命令需要用至少java11执行那个java文件可以单独下载那个文件再执行也可以直接用它给的命令执行这个命令的意思是把原来的地址、密码等数据清空变成初始的未使用的状态然后就是其实用该链接里直接给的的地址和邮箱也可虽然激活后会显示当日过期但是第二天会自动刷新又变成当日过期也相当于无限使用了至少我这里是这样的)然后回到idea贴上去点Activate按钮然后好像会弹出其他窗口一直点下去就好了至此激活成功3、其他配置3.1、设置jrebel自动编译3.2、打开运行时编译Settings→Advanced Settings, 找到右侧的Compiler选项,勾选允许自动 make旧版本的idea好像没有这玩意没有的这个话就不管了不勾了3.3、这个可选setting → Compile → Build project automatically → 选中另外setting → Compile →Resource patterns可以加上;!?*.xml4、其他4.1、有说法说还需要配置下面的第一个图参考官方解释(具体看下面的第二个图)这个主要是为了关联项目id和其class文件的其实我这里不勾上也能对应的上勾上最好吧就勾上自己需要热部署的项目即可4.2、设置离线使用JRebel现在这块好像没法配置我点击work online没反应这个是用来以防更新失效激活地址可以用前面的地址链接每日会自动刷新过期时间或者使用无限试用所以可以不配置。4.3、可以在setting→ JRebel XRebel→Statistics设置手动重新部署应用程序所需的平均时间及热部署时间。使用根据需要选择使用jrebel的build还是debug怎么看启动的是不是jrebel启动后看控制台最上面有没有输出一大堆的jrebel日志即可拓展热部署的方式还可以HotswapAgent DCEVM感兴趣的可以了解下。
返回列表