解决错误java.lang.NoSuchMethodError:org.codehaus.groovy.ast.ModuleNode.getStarImports()Ljava / util / List;

我遇到了这个例外。

Exception :java.lang.NoSuchMethodError: org.codehaus.groovy.ast.ModuleNode.getStarImports()Ljava/util/List; 

我尝试了各种版本的groovy jar,如groovy 1.8.4,groovy 1.8.6等。但我无法摆脱这个错误。

当我在类路径中同时拥有2个不同版本的Groovy时,这发生在我身上。 检查您的类路径,特别是如果使用混淆它的东西,如Eclipse或Maven。

在我的具体情况下,我试图使用Groovy 1.8.6,但Maven依赖在1.6.5中拖动导致错误。 它在命令行上运行unit testing很好,但不是在Eclipse中运行。

要使用Groovy 2.x进行编译,请尝试将其添加到gmaven插件元素:

  2.0 2.0  

例如:

    org.codehaus.gmaven gmaven-plugin    generateStubs compile generateTestStubs testCompile     2.0 2.0     

   org.codehaus.groovy groovy-all 2.1.9   

似乎工作。

我刚刚通过刷新IntelliJ中的所有Gradle项目并再次运行来解决这个问题。

问题肯定是多个groovy版本。 我在使用maven项目和Eclipse IDE时遇到了这个问题。 就我而言, pom.xml有以下几点 –

    org.codehaus.gmaven groovy-maven-plugin 2.0   

但是在Eclipse Under Window – > preference – > groovy版本是2.5.0。 我将它降级到2.3.11并且有效。 只需单击switch即可在Eclipse中使用较低版本的Groovy。

在此处输入图像描述