是否可以在 grails 3 应用程序的插件中使用不同的 gorm 版本?
Is it possible to have different gorm versions in plugins within a grails 3 application?
我有一个大量使用插件的 grails 3 应用程序。其中一些插件提供域 类。除非 every 插件具有相同的 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)
我目前使用的是 Grails 3.2.8 和 GORM 6.1。3.RELEASE,但其他不匹配的 gorm 版本也会出现这种情况。
如果有更好的方法来实现大局目标,我的大局目标是使用需要gorm 6的grails ehcache插件(目前为3.0.0.M1)。1.x作为最低限度。根据该插件 github 站点上的对话,将 gorm 6.1 与 grails 3 一起使用没有问题。2.x,尽管这不是默认设置。
有没有办法运行 grails 3 应用程序,使用提供域对象的插件,其中这些插件有不同的次要版本的 gorm?
万一其他人遇到这个问题,答案基本上是 "no"。
较长的答案是 "not as long as the groovy version is changing in non-backwards-compatible ways",显然这种情况经常发生。
这里有 Graeme 的一些评论:https://github.com/grails/grails-core/issues/10693 但总结一下:你必须在插件中使用相同版本的 gorm,并确保你依赖的任何第三方插件都是相同的版本。至少,这仅对提供领域对象的插件是必需的!
我有一个大量使用插件的 grails 3 应用程序。其中一些插件提供域 类。除非 every 插件具有相同的 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)
我目前使用的是 Grails 3.2.8 和 GORM 6.1。3.RELEASE,但其他不匹配的 gorm 版本也会出现这种情况。
如果有更好的方法来实现大局目标,我的大局目标是使用需要gorm 6的grails ehcache插件(目前为3.0.0.M1)。1.x作为最低限度。根据该插件 github 站点上的对话,将 gorm 6.1 与 grails 3 一起使用没有问题。2.x,尽管这不是默认设置。
有没有办法运行 grails 3 应用程序,使用提供域对象的插件,其中这些插件有不同的次要版本的 gorm?
万一其他人遇到这个问题,答案基本上是 "no"。
较长的答案是 "not as long as the groovy version is changing in non-backwards-compatible ways",显然这种情况经常发生。
这里有 Graeme 的一些评论:https://github.com/grails/grails-core/issues/10693 但总结一下:你必须在插件中使用相同版本的 gorm,并确保你依赖的任何第三方插件都是相同的版本。至少,这仅对提供领域对象的插件是必需的!