我正在使用JRebel + Intellij集成开发环境插件来热部署JRebel项目。
我遇到过这样的情况,某些JRebel类是JRebel拒绝让我热部署的。
某些类可以正常重新加载。
其他类根本不会重新加载。(通常在与重新加载OK的类相同的gradle子项目中)
没有任何理由可以解释为什么他们不想重新加载。这些类并没有什么特别之处。不是很长。
我们使用Guice..。但是,一些由Guice管理的文件可以正常重新加载,而其他文件则不能。
这使得JRebel变得非常不可用,因为你不能相信它是否会热部署。
我为我们的项目创建了一个自定义的JRebel插件,希望它能有所帮助,但它没有。因为类本身不会触发重新加载事件,所以插件无法帮助解决这个问题。
注意,不会重新加载的相关类通常是接口的实现,如果我更改了该实现,则不会发生重新加载。但是如果我改变接口java类,它将重新加载!
JRebel特别不喜欢Java类文件的某些方面。
当我构建它不会拾取的文件时,你甚至可以在IDE中看到,并且100%的时间我得到了这些文件:

有没有什么办法能让这一切不再发生?
发布于 2018-03-05 08:01:47
由于延迟加载,类还没有出现在类加载器中。因此问题就来了。
JRebel无法重新加载尚未在类加载器中的类。
https://stackoverflow.com/questions/48897631
复制相似问题