本文主要是介绍JRebel 插件实现热部署xml不生效的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
结语
不废话,在你插件正确安装,java文件可以热更新的情况下,仅仅是xml没有更新,那么观察class下xml有没有随源文件变化,如果有,Ctrl+F9手动编译, 直接请求接口,控制台输出 Reloading SQL maps 即为正确。
一,下载安装JRebel
低版本和spring5不兼容,和mybatis-plus也有冲突。
直接下载最新版本插件 这两个都要 点此激活
记得安装好后设置切换为离线模式,以防更新失效,激活地址也提供无限试用模式。
二,修改编译设置 添加xml文件 !?*.xml
其实这个自动构建项目 个人感觉是没用的 ,因为写了仅在不运行时构建,很奇怪。有用的是xml
三,修改JRebel设置 自动编译 但不是即时生效
四,选中需要热更新的模块,左侧按钮是本地,右侧是远程。
这个应该要选完整 ,跟你启动项目所需的模块和依赖关系是一致的。
五,JRebel Debug启动,java的热更新已经可以使用了
此时改动java文件控制台输出Reloading class 但是xml没有生效
六,要不 按Ctrl+F9试试?
其实到这里,我就已经去class目录看过编译后的同名xml,已经跟着在变化了,我全都注释了,但还是没有生效,看了很多配置,同事明明什么插件也没装,就按个Ctrl+F9 就说xml不用重启。
实在没办法了 乱按个Ctrl+F9 ,手动构建,再请求接口,控制台才输出sql变化,后面发现不按的话大概十多秒,自动输出 Reloading SQL maps ,可能是上面配置的JRebel automatic生效了,但是没有时间配置选项。
七,废话
我推测,比较关键的是上文中的 编译加入xml文件类型选项,文件改动被加入class目录,然后手动构建使其重载到程序内存。
也就是说,你正常按照网上的图文安装完两个插件,编译设置加入xml,在项目正常启动的情况下,用JRebel Debug启动项目,观察class目录下的xml是否跟着变化,如果有变化,Ctrl+F9,访问接口,就会看到xml更新了。
因为折腾的关系,没有去重新安装验证,期间也弄了很多犄角旮旯的配置,但是我觉得不关键,class中xml的变化在我安装完后就验证了。如不能解决,请继续加油。此处仅提供一个方向。
已验证。
这篇关于JRebel 插件实现热部署xml不生效的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!