Eclipse Grails/Groovy/GGTS:运行应用程序时模块版本冲突
在将Grails应用程序从2.2.0升级到2.2.1之后,当我试图通过debug as…->Grails命令(运行应用程序): 启动Grails时出错:nulljava.lang.ExceptionInInitializeError 位于org.codehaus.groovy.runtime.InvokerHelper。(InvokerHelper.java:62) 位于groovy.lang.GroovyObjectSupport。(GroovyObjectSupport.java:32) 位于groovy.lang.Closure。(Closure.java:221) 位于groovy.lang.Closure。(Closure.java:238) 位于groovy.lang.Closure$1(Closure.java:205) 位于groovy.lang.Closure。(Closure.java:205) 位于org.codehaus.groovy.grails.cli.GrailsScriptRunner.(GrailsScriptRunner.java:84) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中 位于java.lang.reflect.Method.invoke(Method.java:601) 位于org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243) 位于org.codehaus.groovy.grails.cli.support.grailstarter.rootLoader(grailstarter.java:234) 位于org.codehaus.groovy.grails.cli.support.grailstarter.main(grailstarter.java:262) 原因:groovy.lang.GroovyRuntimeException:模块版本冲突。模块[groovy all在版本2.0.5中加载,您正在尝试加载版本2.0.7 位于org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerExtensionModuleFromProperties(MetaClassRegistryImpl.java:186) 位于org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerExtensionModuleFromMetaInf(MetaClassRegistryImpl.java:174) 位于org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerClasspathModules(MetaClassRegistryImpl.java:156) 位于org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.(MetaClassRegistryImpl.java:111) 位于org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.(MetaClassRegistryImpl.java:73) 位于groovy.lang.GroovySystem(GroovySystem.java:33) …还有14个 我使用Groovy编译器2.0特性2.7.1.xx-20120921-2000-e42RELEASE和Groovy/Grails工具套件3.1.0.201210061306-RELEASE-e42运行GGTS 3.1.0.RELEASE。该项目配置了Groovy编译器级别2.0。Eclipse首选项显示“您当前正在使用Groovy编译器版本2.0.4.xx-20120921-2000-e42RELEASE”Eclipse Grails/Groovy/GGTS:运行应用程序时模块版本冲突,eclipse,grails,Eclipse,Grails,在将Grails应用程序从2.2.0升级到2.2.1之后,当我试图通过debug as…->Grails命令(运行应用程序): 启动Grails时出错:nulljava.lang.ExceptionInInitializeError 位于org.codehaus.groovy.runtime.InvokerHelper。(InvokerHelper.java:62) 位于groovy.lang.GroovyObjectSupport。(GroovyObjectSupport.java:32) 位
有什么提示吗?我没有解释为什么它不起作用,但我找到了解决办法 我为同一个应用程序配置了另一个运行目标,但是使用了
-Dgrails.env=…
设置,我可以毫无问题地启动它。我只是复制了这个配置并删除了参数。这样,我基本上重新创建了以前一直失败的简单启动配置
问题消失了。对我来说,从grails命令窗口编译完成了这个技巧在eclipse中运行它时,我遇到了同样的问题,对我有效的是做了以下更改
转到项目属性->Groovy编译器->配置工作区设置。取消选中复选框“启用检查项目和工作区Groovy编译器级别之间的不匹配”当我更改grails项目的名称时,它工作正常。我删除了GGTS工作区中的元数据并重新导入项目。它工作正常,我可以再次运行应用程序。我遇到了同样的问题,我从GGTS中选择groovy all 2.0.7,从grails项目中选择2.0.8。为了解决这个问题,我删除了“groovy依赖项”eclipse项目中的库
右键单击project->Properties->Java Build Path->Libraries(选项卡)->Groovy Dependencies->Remove我在Ubuntu机器上的Grails 2.2.0上遇到了这个问题,我通过以下步骤修复了它:
这为我解决了问题。希望此帮助手动删除run app运行配置,以便重新创建。这在2013年8月1日被报告为错误。错误报告:我遇到了相同的问题,我通过以下方法解决了它:
这对我来说是个好办法。当Eclipse停止运行我的项目时,另一个解决方案对我起了作用,出现了“groovy all is loaded in version…you's to load version”错误 手动从类路径中删除groovy all行修复了它
<classpathentry kind="lib" path="Libraries/groovy-all-2.1.2.jar"/>
我找到了解决方案。我也遇到了同样的问题,我去了
项目属性->Groovy编译器->配置工作区设置
,然后单击了与错误消息中两个版本之一对应的“切换到”按钮。
我希望这会有所帮助我通过删除在运行配置中手动加载类路径的选项解决了这个问题。它使用了错误的Grails版本(2.5.0而不是2.5.1) 基本上使用了错误的类路径
也许这会让一些人走上正确的道路:)我知道这是一个GGTS问题,但谷歌把我带到了这里,这似乎是一个常见的问题,甚至在几年后,所以我在这里发布了这个答案。希望它能帮助其他同样登陆这里的STS用户 我在使用Spring Boot版本1.3.3.RELEASE和gradle版本2.14的Spring工具套件时遇到了这个问题。groovy 2.4.6和groovy all 2.4.6有一些内部依赖,但我的Eclipse工作区groovy库是版本2.4.7。从Spring/gradle项目属性中删除groovy库适用于运行这些项目,但对于工作区中的其他Groovy项目,您将陷入两难境地。如果您在项目中出现错误时单击“是”,它们将运行。运行任意
<classpathentry kind="lib" path="Libraries/groovy-all-2.1.2.jar"/>
compile('org.codehaus.groovy:groovy:2.4.7')
compile('org.codehaus.groovy:groovy-all:2.4.7')
<path to>\.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy\2.4.6
<path to>\.gradle\caches\modules-2\files-2.1\org.codehaus.groovy\groovy-all\2.4.6