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".
Любые подсказки?
Ответы
Ответ 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: дерево, чтобы проверить ваши зависимости, возможно, существуют конфликты версий.