我有一个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)
我目前使用的是带有GORM 6.1.3.RELEASE的Grails 3.2.8,但这也发生在gorm的其他不匹配版本中。
如果有更好的方法可以实现更大的目标,那么我的大目标是使用grails ehcache插件(当前版本为3.0.0.M1),该插件最低要求gorm6.1.x。在该插件github站点上的每次对话中,将gorm 6.1与grails 3.2.x一起使用都没有问题,尽管这不是默认设置。
是否可以使用提供域对象的插件来运行grails 3应用程序,而这些插件在其中具有不同的次要版本的gorm?
最佳答案
万一其他人遇到这个问题,答案基本上是“否”。
更长的答案是“只要不改变常规版本以非向后兼容的方式进行更改”,显然这经常发生。
这里有Graeme的一些评论:https://github.com/grails/grails-core/issues/10693但要总结一下:您必须在各个插件中使用相同版本的gorm,并确保您依赖的所有第三方插件都在同一版本上。至少只有提供域对象的插件才需要这样做!
关于grails - grails 3应用程序的插件中可能有不同的gorm版本吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44635366/