我遇到了这个例外。
Exception :java.lang.NoSuchMethodError: org.codehaus.groovy.ast.ModuleNode.getStarImports()Ljava/util/List;
我尝试了各种版本的groovy jar,如groovy 1.8.4,groovy 1.8.6等。但我无法摆脱这个错误。
答案 0 :(得分:16)
当我在类路径中同时拥有2个不同版本的Groovy时,发生了这种情况。检查你的类路径,特别是如果使用混淆它的东西,如Eclipse或Maven。
在我的具体情况下,我试图使用Groovy 1.8.6,但是Maven依赖在1.6.5中拖动导致错误。它在命令行上运行单元测试很好,但不能在Eclipse中运行。
答案 1 :(得分:6)
要使用Groovy 2.x进行编译,请尝试将其添加到gmaven插件元素:
<configuration>
<providerSelection>2.0</providerSelection>
<source>2.0</source>
</configuration>
例如:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>generateStubs</goal>
<goal>compile</goal>
<goal>generateTestStubs</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<providerSelection>2.0</providerSelection>
<source>2.0</source>
</configuration>
</plugin>
</plugins>
</build>
与
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.1.9</version>
</dependency>
</dependencies>
似乎有效。
答案 2 :(得分:0)
我刚刚通过刷新IntelliJ中的所有Gradle项目并再次运行来解决这个问题。
答案 3 :(得分:0)
这个问题肯定与多个groovy版本有关。我在Maven项目和Eclipse IDE中遇到了这个问题。就我而言,pom.xml
具有以下-
<dependencies>
<dependency>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>groovy-maven-plugin</artifactId>
<version>2.0</version>
</dependency>
</dependencies>
但是在Eclipse Under Window->首选项-> groovy版本是2.5.0。我将其降级为2.3.11,并且可以正常工作。只需单击switch即可在Eclipse中使用较低版本的Groovy。