从我的intelliJ idea插件中使用groovy时,加载了错误的groovy

时间:2013-10-15 11:23:02

标签: groovy intellij-idea

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

我的系统默认使用groovy 2.1.7,但是intelliJ idea使用groovy 2.0.6(在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)

3 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。

请检查您的IntelliJ设置:

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

答案 1 :(得分:1)

我检查了我的IntelliJ设置:

项目结构/全球图书馆

我没有看到任何东西。

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

删除错误的groovy版本后,问题就解决了。

答案 2 :(得分:1)

我没有在项目结构/全球图书馆或项目结构/图书馆下列出任何内容,所以上面的两个答案不幸对我不起作用。

这是什么工作:我找到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现在似乎忽略了它,我不再看到错误信息。