[英]IntelliJ Idea groovy.lang.GroovyRuntimeException: Conflicting module versions
我的 maven 構建很好,能夠從 cli 運行 groovy。 但是,如果我嘗試在 IntelliJ Idea(第 15 版社區版)中運行我的 groovy class,它會給我以下錯誤。
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 啟動。
<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
如果有人知道這件事,請告訴我。
你必須從項目設置中刪除groovy lib。
shift + alt + ctrl + s,全局庫 - 刪除groovy。 在嘗試運行應用程序/測試時,你應該指出來自maven依賴項的groovy。
@SuperAndrew的建議不是我的情況 - 我沒有在我的項目結構下在全球圖書館注冊的Groovy。 但我確實發現這個StackExchange解決方案解決了我的問題 。 將此代碼添加到build.gradle
文件中。
configurations.all {
resolutionStrategy {
force 'org.codehaus.groovy:groovy-all:2.4.4'
}
}
在我將 Gradle 升級到 7.+ 后,我在最近的項目中看到了這一點
這對我造成問題的原因是 Gradle 7.+ 現在正在使用 Groovy 3.+,因此需要升級各種其他插件(例如 spock-core)。
造成這種情況的是各種依賴項的不兼容性,一旦我更新了所有依賴項,這個問題就消失了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.