私のMavenビルドは問題なく、cliからgroovyを実行できます。ただし、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バージョンです。
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'
}
}