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

时间:2017-06-19 16:14:09

标签: grails plugins gorm

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

stacktrace中有更多细节,但相关部分似乎是:

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的其他非匹配版本。

如果有更好的方法来实现更大的图片目标,我的主要目标是使用grails ehcache插件(目前在3.0.0.M1),这至少需要gorm 6.1.x.对于该插件github网站上的每个对话,使用带有grails 3.2.x的gorm 6.1没有问题,尽管这不是默认值。

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

1 个答案:

答案 0 :(得分:0)

如果有其他人遇到这个问题,答案基本上是"没有"。

更长的答案是"只要groovy版本以非向后兼容的方式改变",显然这种情况会发生很多。

Graeme在这里有一些评论:https://github.com/grails/grails-core/issues/10693但总结一下:你必须在插件中使用相同版本的gorm,并确保你所依赖的任何第三方插件都在同一个版本上。这仅适用于提供域对象的插件,至少!