Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法打包Grails 3应用程序-NoSuchMethodError_Java_Grails_Grails 3.1 - Fatal编程技术网

Java 无法打包Grails 3应用程序-NoSuchMethodError

Java 无法打包Grails 3应用程序-NoSuchMethodError,java,grails,grails-3.1,Java,Grails,Grails 3.1,我正在尝试打包我的Grails3.1.5应用程序 运行grails包(或grailswar)会产生以下结果: FAILURE: Build failed with an exception. * What went wrong: org.codehaus.groovy.runtime.DefaultGroovyMethods.each(Ljava/util/List;Lgroovy/lang/Closure;)Ljava/util/List; * Try: Run with --stackt

我正在尝试打包我的Grails3.1.5应用程序

运行
grails包
(或
grailswar
)会产生以下结果:

FAILURE: Build failed with an exception.

* What went wrong:
org.codehaus.groovy.runtime.DefaultGroovyMethods.each(Ljava/util/List;Lgroovy/lang/Closure;)Ljava/util/List;

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.205 secs
| Error Command [package] error: Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-2.6-bin.zip'. (Use --stacktrace to see the full trace)
使用
--stacktrace
运行时,将提供:

Caused by: java.lang.NoSuchMethodError: org.codehaus.groovy.runtime.DefaultGroovyMethods.each(Ljava/util/List;Lgroovy/lang/Closure;)Ljava/util/List;
        at asset.pipeline.gradle.AssetCompile.getSource(AssetCompile.groovy:188)
        at asset.pipeline.gradle.AssetCompile_Decorated.getSource(Unknown Source)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$PropertyInfo$4.create(AnnotationProcessingTaskFactory.java:460)
        at org.gradle.util.SingleMessageLogger.whileDisabled(SingleMessageLogger.java:166)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$PropertyInfo.getValue(AnnotationProcessingTaskFactory.java:458)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$Validator$1.call(AnnotationProcessingTaskFactory.java:262)
我的版本是:

| Grails Version: 3.1.5
| Groovy Version: 2.4.6
| JVM Version: 1.8.0_91
我已经删除了
.gradle
缓存文件夹,运行了
grails clean
,但是运气不好


编辑:我目前的解决方案是使用gradle来构建战争
gradle war
正在生成一个uber jar,我可以将其用于部署。当然很乐意使用grails来实现这一点(除非我遗漏了一些东西)。

我已经通过使用:

./gradlew clean assemble
这会在
/build/libs/
中产生一场战争


正如前面所讨论的,这可能是由Grails中的一个bug引起的。

不清楚哪里出了问题,但我认为您可能对混合中的某些内容有一个错误的版本。错误消息表示正在使用Gradle 2.6。新创建的Grails3.1.5应用程序应该使用Gradle2.9。我会对此进行调查,看看这是否相关。我能找到的Gradle的最新版本是2.13;Grails为什么和如何使用Gradle2.9?“Grails如何使用Gradle2.9?”-请参阅和。这些配置了在使用
gradlew
时将使用的Gradle版本。Gradle包装器版本是否与Gradle版本相同?“当然可以使用grails实现这一点”-如果没有看到一个演示了这个问题的项目,我就无法判断出哪里出了问题,但是如果安装了
war
插件,那么
/gradlew assembly
将生成
.war
文件,而这正是大多数人所做的。如果未安装
war
插件,则
/gradlew assembly
将生成一个可执行的
.jar
文件。