是否可以在 grails 3 应用程序的插件中具有不同的 gorm 版本?



我有一个大量使用插件的 grails 3 应用程序。 其中一些插件提供域类。 除非每个插件都有相同的 gorm 版本,否则我的应用程序不会启动。 对于本地开发的插件来说,这是一个烦恼,但对于使用第三方插件来说可能是一个重大问题。

堆栈跟踪中有更多细节,但相关部分似乎是:

Caused by: org.grails.core.exceptions.GrailsRuntimeException: Failed to introspect class: class (my class name)
at grails.core.ArtefactHandlerAdapter.isArtefact(ArtefactHandlerAdapter.java:129)
at grails.core.DefaultGrailsApplication.addOverridableArtefact(DefaultGrailsApplication.java:772)
at org.grails.plugins.AbstractGrailsPluginManager.registerProvidedArtefacts(AbstractGrailsPluginManager.java:310)

我目前正在使用带有GORM 6.1.3.RELEASE的Grails 3.2.8,但是其他与gorm不匹配的版本也会发生这种情况。

如果有更好的方法来实现更大的目标,我的大目标是使用grails ehcache插件(目前为3.0.0.M1),它至少需要gorm 6.1.x。 根据该插件github站点上的对话,使用gorm 6.1和grails 3.2.x没有问题,尽管这不是默认设置。

有没有办法运行 grails 3 应用程序,使用提供域对象的插件,其中这些插件具有不同的 gorm 次要版本?

如果其他人遇到这种情况,答案基本上是"否"。

更长的答案是"只要时髦版本以非向后兼容的方式发生变化",显然这种情况经常发生。

这里有一些来自 Graeme 的评论: https://github.com/grails/grails-core/issues/10693 但总结一下:您必须在插件中使用相同的 gorm 版本,并且还要确保您依赖的任何第三方插件都使用相同的版本。 至少,只有提供域对象的插件才需要这样做!

相关内容

  • 没有找到相关文章

最新更新