当使用我的IntelliJ IDEA插件中的Groovy时加载错误的Groovy。

11

我正在使用Groovy作为开发语言,开发一个IntelliJ插件。

我的系统默认使用Groovy 2.1.7版本,但是IntelliJ IDEA使用的是Groovy 2.0.6版本(在 lib / 中)。

当我启动带有我的插件的Idea时,在加载我的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个回答

3

我遇到了同样的问题。

请检查您的IntelliJ设置,具体步骤如下:

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


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现在似乎已经忽略了它,我再也没有看到错误信息了。


1

我在IntelliJ设置中检查了以下内容:

项目结构/全局库

但是我没有找到任何东西。

然后我查看了项目结构/库,发现有一个模块包含两个不同的groovy-all版本(2.4.1和2.4.5)。

当我删除了错误的groovy版本后,问题得到解决。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接