Подтвердить что ты не робот

Grails/Groovy/GGTS: конфликтующие версии модулей в run-app

После обновления приложения Grails от 2.2.0 до 2.2.1 я продолжаю получать следующую ошибку при попытке отладки приложения Grails из GGTS через Debug as... → Команда Grails (run-app):

Error starting Grails: nulljava.lang.ExceptionInInitializerError
at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:62)
at groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:32)
at groovy.lang.Closure.<init>(Closure.java:221)
at groovy.lang.Closure.<init>(Closure.java:238)
at groovy.lang.Closure$1.<init>(Closure.java:205)
at groovy.lang.Closure.<clinit>(Closure.java:205)
at org.codehaus.groovy.grails.cli.GrailsScriptRunner.<clinit>(GrailsScriptRunner.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1243)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.rootLoader(GrailsStarter.java:234)
at org.codehaus.groovy.grails.cli.support.GrailsStarter.main(GrailsStarter.java:262)
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.0.5 and you are trying to load version 2.0.7
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerExtensionModuleFromProperties(MetaClassRegistryImpl.java:186)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerExtensionModuleFromMetaInf(MetaClassRegistryImpl.java:174)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.registerClasspathModules(MetaClassRegistryImpl.java:156)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:111)
at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:73)
at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:33)
... 14 more

Я запускаю GGTS 3.1.0.RELEASE с помощью Groovy Компилятора 2.0 Feature 2.7.1.xx-20120921-2000-e42RELEASE и Groovy/Grails Tool Suite 3.1.0.201210061306-RELEASE-e42. В проекте настроен Groovy Уровень компилятора 2.0. Предпочтения Eclipse говорят: "В настоящее время вы используете Groovy компилятор версии 2.0.4.xx-20120921-2000-e42RELEASE".

Любые подсказки?

4b9b3361

Ответ 1

У меня нет объяснений, почему это не сработало, но я нашел обходное решение.

У меня была другая цель запуска, настроенная для того же приложения, но с настройкой -Dgrails.env=..., которую я мог запустить без проблем. Я просто скопировал эту конфигурацию и удалил параметр. Таким образом, я в основном воссоздал простую конфигурацию запуска, которая ранее не срабатывала.

Проблема исчезла.

Ответ 2

У меня была эта проблема на Grails 2.2.0 на машине Ubuntu, я исправил ее с помощью следующих шагов:

  • Откройте eclipse, перейдите в раздел "Запуск от имени" "Запуск конфигурации"
  • выберите вкладку "Среда", затем выберите "заменить родную среду указанной средой"

который решил проблему для меня.. надеюсь, что эта помощь

Ответ 3

У меня была та же проблема, я собирал groovy -all 2.0.7 от GGTS и 2.0.8 из моего проекта grails. Чтобы устранить проблему, я удалил библиотеку "Groovy Dependencies" из проекта eclipse.

Щелкните правой кнопкой мыши по проекту → Свойства → Путь сборки Java → Библиотеки (вкладка) → Groovy Зависимости → Удалить

Ответ 4

Вручную удалите Run-приложение Run Configuration, чтобы он воссоздавался. Об этом сообщается как об ошибке 1 августа 2013 года. Отчет об ошибке: https://issuetracker.springsource.com/browse/STS-3501

Ответ 5

Я удалил metadata в рабочей области GGTS и reimport. Он работает, я снова могу запустить приложение.

Ответ 6

У меня была та же проблема, и я решил ее:

  • Для вашего проекта: Открыть Запустить как Запустить конфигурации
  • Перейдите на вкладку Обновить
  • Проверьте Обновить ресурсы после завершения
  • Нажмите Выполнить

Это помогло мне.

Ответ 7

Я решил это, исключив возможность вручную загрузить путь к классам в Run Configuration. Он использовал неправильную версию Grails (2.5.0 вместо 2.5.1).

В основном использовался неправильный путь к классам.

Возможно, это приводит кого-то к правильному пути:)

Ответ 8

Для меня компиляция из окна команды grails сделала трюк

Ответ 9

У меня была такая же проблема при запуске через eclipse, и то, что сработало для меня, - это сделать следующие изменения Перейдите в Свойства проекта → Groovy Компилятор → настройте параметры рабочей области. Снимите флажок "Включить проверку несоответствия между проектами и рабочей областью Groovy уровни компилятора"

Ответ 10

У меня такая же проблема, но при изменении имени проекта grails он работает правильно.

Ответ 11

Другое решение сработало для меня, когда Eclipse перестала работать с моим проектом с "groovy -all загружен в версию... и вы пытаетесь загрузить версию".

Вручную удалил строку groovy -all из .classpath, исправил ее.

<classpathentry kind="lib" path="Libraries/groovy-all-2.1.2.jar"/>

Я нашел решение в этом сообщении в блоге.

Ответ 12

У меня была та же проблема, я пошел в Project properties -> Groovy Compiler ->configure workspace settings, и я нажал кнопку "Переключиться", которая соответствовала одной из двух версий сообщения об ошибке. Я надеюсь, что это поможет

Ответ 13

Я знаю, что это вопрос GGTS, но Google привел меня сюда, и это кажется распространенной проблемой даже после нескольких лет, поэтому я отправляю этот ответ здесь. Надеюсь, это поможет другим пользователям STS, которые также приземляются здесь.

У меня была эта проблема с Spring Tool Suite, используя Spring Boot Version 1.3.3.RELEASE и gradle версия 2.14. Существует некоторая внутренняя зависимость от groovy 2.4.6 и groovy -all 2.4.6, но мое рабочее пространство Eclipse groovy Библиотеки - это версия 2.4.7. Удаление библиотек groovy из свойств проекта Spring/Gradle работает для запуска этих проектов, но для других проектов groovy в рабочей области вы застряли между камнем и жестким местом. Они будут либо запускаться, если вы нажмете "да", когда "Ошибки существуют в проекте. Запустите в любом случае?" если вы удалите библиотеки groovy из пути создания свойств или у них не будет ошибок проекта, если вы поместите в каталог свойств groovy libs.

Решено путем добавления явных зависимостей в build.gradle на groovy 2.4.7 и groovy -all 2.4.7 для gradle проектов в рабочей области

compile('org.codehaus.groovy:groovy:2.4.7')
compile('org.codehaus.groovy:groovy-all:2.4.7')

и (закрыть Eclipse STS), а затем удалить папку 2.4.6 из кеша .gradle

<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

и (Открыть STS), затем щелкните правой кнопкой мыши проект gradle > gradle > обновить gradle проект

Теперь другие groovy проекты в рабочей области работают без конфликта 2.4.6 с 2.4.7.

Ответ 14

У меня было то же исключение, когда я пытался запускать тесты JUnit в моем проекте загрузки Spring только в Eclipse, mvn отлично их выполняет. Я не использую Gradle или Groovy. Действительно, проверяя путь тестового класса при отладке, были показаны две версии groovy.jar. Рабочая версия groovy.jar была выбрана из других проектов в рабочей области Eclipse. Я смог исправить это, удалив Разрешить зависимости из проектов Workspace в свойствах проекта → Maven Разрешить зависимости от проектов рабочей области

Ответ 15

используйте mvn denpendency: дерево, чтобы проверить ваши зависимости, возможно, существуют конфликты версий.