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

IntelliJ Idea groovy.lang.GroovyRuntimeException: конфликтующие версии модулей

Мои сборки maven в порядке и могут запускать groovy из cli. Однако, если я попытаюсь запустить класс groovy внутри IntelliJ Idea (версия для сообщества версии 15), это приведет к ошибке ниже.

Exception in thread "main" java.lang.ExceptionInInitializerError
at org.codehaus.groovy.runtime.InvokerHelper.<clinit>(InvokerHelper.java:61)
at groovy.lang.GroovyObjectSupport.<init>(GroovyObjectSupport.java:32)
at groovy.lang.Closure.<init>(Closure.java:219)
at groovy.lang.Closure.<init>(Closure.java:236)
at groovy.lang.Closure$1.<init>(Closure.java:203)
at groovy.lang.Closure.<clinit>(Closure.java:203)
at filter.App.<clinit>(App.groovy)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
Caused by: groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.3.9 and you are trying to load version 2.4.5
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:509)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:77)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:71)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:53)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:110)
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl.<init>(MetaClassRegistryImpl.java:71)
    at groovy.lang.GroovySystem.<clinit>(GroovySystem.java:33)
    ... 10 more

Не уверен, как избавиться от этого.

Это моя зависимость от pom.

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.4.5</version>
    </dependency>

И я использую spring boot.

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.2.RELEASE</version>
    <relativePath></relativePath>
</parent>

Это моя версия groovy, установленная в системе.

Groovy Version: 2.4.5 JVM: 1.8.0_60 Vendor: Oracle Corporation OS: Linux

Пожалуйста, дайте мне знать, если кто-то знает об этом.

4b9b3361

Ответ 1

вам нужно удалить groovy lib из настроек проекта.

shift + alt + ctrl + s, глобальные библиотеки - удалить groovy. И при попытке запустить applictaion/test вы должны указать на groovy из зависимостей maven.

Ответ 2

@SuperAndrew предложение не было моей ситуацией - у меня не было Groovy, зарегистрированного в разделе "Глобальные библиотеки" в моей структуре проекта. Но я нашел это решение StackExchange разрешило мою проблему. Добавьте этот код в свой build.gradle файл.

configurations.all {
    resolutionStrategy {
        force 'org.codehaus.groovy:groovy-all:2.4.4'
    }
}