2014-09-25 98 views
5

我使用的是配有groovy-all-2.1.5.jarEclipse-Groovy插件的最新版本(2.8.0)。我加吉斯到我的Groovy項目,當我去到從內Eclipse中運行他們,我得到以下錯誤在控制檯輸出:如何更改Eclipse-Groovy插件Groovy庫?

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是因爲ShortTypeHandling沒有添加到2.3.x.所以我現在想將groovy-all-2.3.3.jar附加到我的Eclipse項目的類路徑中。

問題是,我似乎沒有編輯權限來改變庫所使用的底層庫。當我手動添加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 

我的選擇是什麼?

回答

6

Groovy-eclipse版本有自己的編譯器and are "locked" to them。您可以將版本更改爲窗口>首選項> Groovy>編譯器下列出的任何版本,但是,AFAIK只需更改插件目錄的內容中的groovy-all jar即可更改爲任意版本的編譯器。

groovy-eclipse compiler version change

您可以使用update site安裝新版本的編譯器或偏食市場


更新:通過幫助安裝額外的編譯器版本>安裝新軟件,選擇Groovy的更新站點並擴大Extra Groovy Compilers session:

enter image description here

請注意我正在使用快照更新站點,因爲我like to live dangerously

+3

謝謝@Will P(+1) - 我想你可能已經在這裏找到了解決方案,但是在我的eclipse中,我沒有選擇「*切換到2.3.3.xx ... *」按鈕/選項。我只有1.8.7和2.0.7的按鈕,這對我沒有幫助,因爲'ShortTypeHandling'直到2.3.x才被引入。 **你知道我可以如何爲我的* Groovy編譯器設置*選項添加更多版本嗎?**再次感謝! – smeeb 2014-09-26 00:17:13

+0

@smeeb我有同樣的問題。我安裝了2.4的功能,但沒有按鈕可以在我的偏好中切換到它。你有沒有解決這個問題?謝謝。 – Chris 2016-01-14 16:50:08

+0

其實,我找到了適合我的答案:將-clean添加到eclipse.ini文件中。感謝@Lari Hotari(請參閱https://stackoverflow.com/questions/21413003/groovy-compiler-mismatch-after-installation)。 – Chris 2016-01-14 17:27:11