2014-10-01 42 views
0

我有一个grails应用程序2.4.1 grails版本,并使用2.3 groovy编译器。grails groovy版本问题

我收到以下错误,当我尝试运行附带的Groovy 2.3.3

java.lang.NoSuchMethodError: org.codehaus.groovy.runtime.DefaultGroovyMethods.count(Ljava/lang/Iterable;Lgroovy/lang/Closure;)Ljava/lang/Number; 
    at org.codehaus.groovy.grails.compiler.web.ControllerActionTransformer.processMethods(ControllerActionTransformer.java:234) 
    at org.codehaus.groovy.grails.compiler.web.ControllerActionTransformer.performInjectionOnAnnotatedClass(ControllerActionTransformer.java:204) 
    at org.codehaus.groovy.grails.compiler.web.ControllerActionTransformer.performInjection(ControllerActionTransformer.java:196) 
    at org.codehaus.groovy.grails.compiler.injection.GrailsAwareInjectionOperation.call(GrailsAwareInjectionOperation.java:154) 
    at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1213) 
    at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:645) 
    at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:623) 
    at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:600) 
    at org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.processToPhase(GroovyCompilationUnitDeclaration.java:185) 
    at org.codehaus.jdt.groovy.internal.compiler.ast.GroovyCompilationUnitDeclaration.analyseCode(GroovyCompilationUnitDeclaration.java:2213) 
    at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:834) 
    at org.eclipse.jdt.internal.compiler.ProcessTaskManager.run(ProcessTaskManager.java:137) 
    at java.lang.Thread.run(Thread.java:701) 

回答

0

的Grails 2.4.1,这是的Groovy与Grails的版本支持的唯一版本。通常,您不会做任何事情来将Groovy版本与Grails版本相关联。 Grails使用它随附的版本。

确保您的GRAILS_HOME指向Grails 2.4.1,并且GRAILS_HOME/bin位于PATH中。如果PATH中的Grails版本与GRAILS_HOME指向的版本不同,有时会导致特殊行为。

我希望有帮助。