codememo

IntelliJ Idea groovy.lang.그루비 런타임예외:충돌하는 모듈 버전

tipmemo 2023. 7. 13. 00:36
반응형

IntelliJ Idea groovy.lang.그루비 런타임예외:충돌하는 모듈 버전

내 메이븐 빌드는 괜찮고 CLI에서 그루비하게 실행할 수 있습니다.그러나 IntelliJ Idea(버전 15 커뮤니티 에디션) 내에서 groovy 클래스를 실행하려고 하면 아래 오류가 발생합니다.

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>

그리고 나는 스프링 부츠를 사용하고 있습니다.

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

이것은 시스템에 설치된 나의 그루비 버전입니다.

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

누군가 이것에 대해 알고 있다면 저에게 알려주세요.

프로젝트 설정에서 groovy lib를 삭제해야 합니다.

shift+alt+s+s, 글로벌 라이브러리 - groovy 삭제.또한 애플리케이션/테스트를 실행할 때는 maven 의존성에서 groovy를 가리켜야 합니다.

@슈퍼 앤드류의 제안은 제 상황이 아니었습니다. 저는 그루비를 제 프로젝트 구조의 글로벌 라이브러리에 등록하지 않았습니다.하지만 이 StackExchange 솔루션으로 문제가 해결되었습니다.이 코드를 에 추가합니다.build.gradle파일.

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

Gradle을 7.+로 업그레이드한 후 최근 프로젝트에서 이를 보았습니다.

이것이 저에게 문제를 일으킨 이유는 Gradle 7.+가 현재 Groovy 3.+를 사용하고 있기 때문에 다양한 플러그인(예: spock-core)을 업그레이드해야 했기 때문입니다.

다양한 종속성의 비호환성 때문에 이러한 문제가 발생했고 업데이트를 하자 이 문제가 사라졌습니다.

언급URL : https://stackoverflow.com/questions/35520767/intellij-idea-groovy-lang-groovyruntimeexception-conflicting-module-versions

반응형