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

时间:2012-02-10 06:29:53

标签: java groovy

我遇到了这个例外。

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

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

4 个答案:

答案 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。

enter image description here