11

我正在使用 groovy 作为开发语言开发一个 intelliJ 插件。

我的系统默认使用 groovy 2.1.7,但 intelliJ idea 使用 groovy 2.0.6(in lib/)。

当我开始使用我的插件时,我在加载我的 Groovy 类时遇到了这个异常。

Conflicting module versions. Module [groovy-all is loaded in version 2.1.7 and you are trying to load version 2.0.6

这是顶部回溯。

groovy.lang.GroovyRuntimeException: Conflicting module versions. Module [groovy-all is loaded in version 2.1.7 and you are trying to load version 2.0.6
    at org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$DefaultModuleListener.onModule(MetaClassRegistryImpl.java:509)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromProperties(ExtensionModuleScanner.java:78)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanExtensionModuleFromMetaInf(ExtensionModuleScanner.java:72)
    at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:54)
    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)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClassUnderLock(ClassInfo.java:162)
    at org.codehaus.groovy.reflection.ClassInfo.getMetaClass(ClassInfo.java:192)
    at io.github.tomykaira.accelvoice.ideaplugin.NextInsertionHolder.$getStaticMetaClass(NextInsertionHolder.groovy)
    at io.github.tomykaira.accelvoice.ideaplugin.NextInsertionHolder.<init>(NextInsertionHolder.groovy)
    at io.github.tomykaira.accelvoice.ideaplugin.AccelVoiceModule.moduleAdded(AccelVoiceModule.java:45)
    at com.intellij.openapi.module.impl.ModuleImpl.moduleAdded(ModuleImpl.java:236)
    at com.intellij.openapi.module.impl.ModuleManagerImpl$4.run(ModuleManagerImpl.java:535)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1013)
    at com.intellij.openapi.module.impl.ModuleManagerImpl.fireModuleAddedInWriteAction(ModuleManagerImpl.java:532)
    at com.intellij.openapi.module.impl.ModuleManagerComponent$3$1.run(ModuleManagerComponent.java:139)
    at com.intellij.openapi.application.impl.LaterInvocator$1.run(LaterInvocator.java:169)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:343)
4

3 回答 3

3

我有同样的问题。

请检查您的 IntelliJ 设置:

项目结构/全局库 - 删除 2.0.6 版本

于 2014-02-05T15:09:34.603 回答
2

我没有在项目结构/全局库或项目结构/库下列出任何内容,因此不幸的是,上面的两个答案对我不起作用。

起作用的是:我找到了groovy-all对我来说所在的目录

/Users/<username>/.gradle/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-all

该目录包含它在 IntelliJ 的错误消息中提到的两个版本。我重命名了它说它已经在使用的那个(在我的例子中是 2.4.10),这允许它使用它说它正在尝试加载的那个(2.4.12,我想要的)。

这可行,但是在与 gradle 重新同步后,它再次将 2.4.10 下载到该文件夹​​中。不过令人高兴的是,IntelliJ 现在似乎忽略了它,我不再看到错误消息。

于 2018-04-26T09:39:58.033 回答
1

我在以下位置检查了我的 IntelliJ 设置:

项目结构/全球图书馆

在那里我什么也没看到。

然后我查看了项目结构/库,在那里我发现了一个模块,它是两个不同的 groovvy-all 版本(2.4.1 和 2.4.5)。

一旦我删除了不正确的 groovy 版本,问题就解决了。

于 2017-02-16T14:36:36.557 回答