我正在使用groovy-all-2.1.5.jar
附带的Eclipse-Groovy插件的最新版本(2.8.0)。我将Guice添加到我的Groovy项目中,当我从Eclipse内部运行它们时,我在控制台输出中出现以下错误:
Caught: java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling
java.lang.NoClassDefFoundError: org/codehaus/groovy/runtime/typehandling/ShortTypeHandling
at net.me.myapp.utils.restclient.RestClient.<init>(RestClient.groovy:57)
at net.me.myapp.inject.UserServiceClientModule.configure(UserServiceClientModule.groovy:34)
at com.google.inject.AbstractModule.configure(AbstractModule.java:59)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:223)
at com.google.inject.spi.Elements.getElements(Elements.java:101)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:133)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:103)
at com.google.inject.Guice.createInjector(Guice.java:95)
at com.google.inject.Guice.createInjector(Guice.java:72)
at com.google.inject.Guice.createInjector(Guice.java:62)
at net.me.myapp.UserServiceClient.<init>(UserServiceClient.groovy:37)
at net.me.myapp.UserServiceClient.main(UserServiceClient.groovy:45)
Caused by: java.lang.ClassNotFoundException: org.codehaus.groovy.runtime.typehandling.ShortTypeHandling
... 12 more
根据this answer,因为直到2.3.x才添加ShortTypeHandling
。所以我现在想将groovy-all-2.3.3.jar
附加到Eclipse项目的类路径中。
问题在于我似乎没有编辑权限来更改Groovy Libraries
库使用的库。当我手动将2.3.3 JAR添加到我的构建路径时,我收到以下错误:
Caught: java.lang.ExceptionInInitializerError
java.lang.ExceptionInInitializerError
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.1.5 and you are trying to load version 2.3.3
我有什么选择?
答案 0 :(得分:6)
Groovy-eclipse版本有自己的编译器and are "locked" to them。您可以将版本更改为Window&gt;下列出的任何版本。偏好&gt; Groovy&gt;编译器,但是,AFAIK,您只需更改插件目录的内容中的groovy-all
jar即可更改为编译器的任意版本。
您可以使用update site或eclipse marketplace
安装新的编译器版本 更新:通过帮助&gt;安装其他编译器版本安装新软件,选择Groovy更新站点并展开Extra Groovy Compilers
会话:
请注意我使用快照更新网站,因为我like to live dangerously。