2017-06-19 24 views
0

我有一个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) 

我目前使用Grails 3.2.8与GORM 6.1.3.RELEASE,但出现这种情况与其他非gorm的匹配版本也是如此。

如果有更好的方法来完成更大的图片目标,我的大目标是使用grails ehcache插件(目前在3.0.0.M1),这需要gorm 6.1.x。在该插件的github网站上进行的每次会话中,使用gorm 6.1和grails 3.2.x都没有问题,但这不是默认设置。

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

回答

0

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

较长的答案是“没有只要groovy版本以非向后兼容的方式改变”,显然这发生了很多。

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

相关问题