Как изменить библиотеки Groovy плагина Eclipse-Groovy?

Я использую новейшую версию (2.8.0) плагина Eclipse-Groovy, который поставляется с groovy-all-2.1.5.jar. Я добавил 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

Согласно этому ответу, это потому, что ShortTypeHandling не было добавлено до версии 2.3.x. Итак, теперь я хотел бы прикрепить groovy-all-2.3.3.jar к пути к классам моего проекта Eclipse.

Проблема в том, что у меня, похоже, нет прав на редактирование, чтобы изменить библиотеку, которую библиотека Groovy Libraries использует под капотом. И когда я вручную добавляю JAR 2.3.3 в свой путь сборки, я получаю следующую ошибку:

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

Каковы мои варианты?


person smeeb    schedule 25.09.2014    source источник


Ответы (1)


Версии Groovy-eclipse имеют собственные компиляторы и "заблокированы" от них . Вы можете изменить версии на все, что указано в Window > Preferences > Groovy > Compilers, но, насколько мне известно, вы не можете перейти на произвольную версию компилятора, просто изменив jar groovy-all в кишках каталога плагинов.

изменение версии компилятора groovy-eclipse

Вы можете установить новые версии компилятора с помощью сайта обновлений или eclipse marketplace.


Обновление: установите дополнительные версии компилятора через Справка > Установить новое ПО, выберите сайт обновления Groovy и разверните сеанс Extra Groovy Compilers:

введите здесь описание изображения

Обратите внимание, что я использую сайт обновления снимков, потому что мне жить опасно.

person Will    schedule 25.09.2014
comment
Спасибо @Will P (+1) - я думаю, вы могли найти решение здесь, однако в моем затмении я не вижу кнопку / параметр Switch to 2.3.3.xx... . У меня есть кнопки только для 1.8.7 и 2.0.7, что мне не помогает, потому что ShortTypeHandling не было представлено до 2.3.x. Знаете ли вы, как добавить дополнительные версии в параметры Groovy Compiler Settings? Еще раз спасибо! - person smeeb; 26.09.2014
comment
@smeeb У меня такая же проблема. Я установил функцию 2.4, но в моих настройках нет кнопки для переключения на нее. Вы когда-нибудь решали это? Спасибо. - person Chris; 14.01.2016
comment
На самом деле, я нашел ответ, который мне подходит: добавьте -clean в файл eclipse.ini. Благодаря @Lari Hotari (см. stackoverflow.com/questions/ 21413003/). - person Chris; 14.01.2016