大家好,我现在就开始工作了。结果我错过了Groovy插件(感谢Peter)。见下面的答案。原帖留作参考。
我们对grails和所有事情都不熟悉。我已经尝试过最简单的案例,我可以使用gradle来构建我们的grails应用程序,但无论我尝试什么命令(具有讽刺意味的是“createWrapper”哪个有效但没有帮助)我得到:
$ gradle test Dynamic properties are deprecated: http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html Deprecated dynamic property: "grailsVersion" on "root project 'IMPACT'", value: "2.0.4". :test FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':test'. > groovy/lang/GroovyObject * 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: 4.867 secs
我使用哪个命令没有区别,输出总是相同的。
Gradle build.gradle文件如下:
ext.grailsVersion = '2.0.4'
task createWrapper(type: Wrapper) {
gradleVersion = '1.0'
}
buildscript {
repositories {
maven {
url 'http://repo.grails.org/grails/core/'
}
}
dependencies {
classpath 'org.grails:grails-gradle-plugin:1.1.1-SNAPSHOT',
"org.grails:grails-bootstrap:2.0.4"
}
}
apply plugin: 'groovy'
apply plugin: 'grails'
repositories {
mavenCentral()
maven { url 'http://repo.grails.org/grails/core/' }
maven { url 'http://repo.grails.org/grails/plugins/' }
}
dependencies {
compile "org.grails:grails:2.0.4",
"org.grails:grails-core:2.0.4",
"org.grails:grails-hibernate:2.0.4",
"org.grails:grails-logging:2.0.4",
"org.grails:grails-plugin-controllers:2.0.4",
"org.grails:grails-plugin-services:2.0.4",
"org.grails:grails-plugin-domain-class:2.0.4",
"org.grails:grails-plugin-datasource:2.0.4",
"org.grails:grails-plugin-i18n:2.0.4",
"org.grails:grails-spring:2.0.4",
"org.grails.plugins:spring-security-core:1.2.7.3",
"org.grails.plugins:spring-security-ldap:1.0.6"
}
环境是:JDK 1.7.0_05,groovy 1.8.6,grails 2.0.4,gradle 1.0,Mac Os X 10.7.4。
堆栈追踪:
> $ gradle --stacktrace test :test > > FAILURE: Build failed with an exception. > > * What went wrong: Execution failed for task ':test'. > > groovy/lang/GroovyObject > > * Try: Run with --info or --debug option to get more log output. > > * Exception is: > > org.gradle.api.tasks.TaskExecutionException: Execution failed for task > ':test'. at > org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:68) > at > org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46) > at > org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34) > at > org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34) > at > org.gradle.cache.internal.DefaultCacheAccess$2.create(DefaultCacheAccess.java:200) > at > org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:172) > at > org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198) > at > org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:111) > at > org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83) > at > org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32) > at > org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55) > at > org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57) > at > org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41) > at > org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51) > at > org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52) > at > org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42) > at > org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:247) > at > org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:192) > at > org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:177) > at > org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:83) > at > org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:36) > at > org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) > at > org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) > at > org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67) > at > org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter$1.run(TaskCacheLockHandlingBuildExecuter.java:31) > at > org.gradle.cache.internal.DefaultCacheAccess$1.create(DefaultCacheAccess.java:111) > at > org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:126) > at > org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:109) > at > org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:103) > at > org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79) > at > org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter.execute(TaskCacheLockHandlingBuildExecuter.java:29) > at > org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) > at > org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23) > at > org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67) > at > org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32) > at > org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61) > at > org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54) > at > org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:155) > at > org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:110) > at > org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:78) > at > org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:42) > at > org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:28) > at > org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201) > at > org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174) > at > org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170) > at > org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139) > at > org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:31) > at > org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:20) > at org.gradle.launcher.Main.doAction(Main.java:48) at > org.gradle.launcher.exec.EntryPoint.run(EntryPoint.java:45) at > org.gradle.launcher.Main.main(Main.java:39) at > org.gradle.launcher.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50) > at org.gradle.launcher.ProcessBootstrap.run(ProcessBootstrap.java:32) > at org.gradle.launcher.GradleMain.main(GradleMain.java:24) Caused by: > java.lang.NoClassDefFoundError: groovy/lang/GroovyObject at > org.grails.launcher.RootLoader.oldFindClass(RootLoader.java:143) at > org.grails.launcher.RootLoader.loadClass(RootLoader.java:115) at > org.grails.launcher.GrailsLauncher.(GrailsLauncher.java:70) at > org.grails.gradle.plugin.GrailsTask.createLauncher(GrailsTask.groovy:107) > at > org.grails.gradle.plugin.GrailsTask.executeCommand(GrailsTask.groovy:56) > at > org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:196) > at > org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:102) > at > org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:99) > at org.grails.gradle.plugin.GrailsTask_Decorated.invokeMethod(Unknown > Source) at > org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23) at > org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:150) > at > org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:145) > at > org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:477) > at > org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:466) > at > org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:60) > ... 53 more Caused by: java.lang.ClassNotFoundException: > groovy.lang.GroovyObject at > org.grails.launcher.RootLoader.findClass(RootLoader.java:147) at > org.grails.launcher.RootLoader.loadClass(RootLoader.java:119) ... 68 > more > > > BUILD FAILED > > Total time: 5.534 secs
任何指针或评论都非常感谢。
来自--debug输出的片段:
09:17:15.191 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.NoClassDefFoundError: groovy/lang/GroovyObject
09:17:15.191 [ERROR] [org.gradle.BuildExceptionReporter] at org.grails.launcher.RootLoader.oldFindClass(RootLoader.java:143)
09:17:15.192 [ERROR] [org.gradle.BuildExceptionReporter] at org.grails.launcher.RootLoader.loadClass(RootLoader.java:115)
09:17:15.192 [ERROR] [org.gradle.BuildExceptionReporter] at org.grails.launcher.GrailsLauncher.<init>(GrailsLauncher.java:70)
09:17:15.192 [ERROR] [org.gradle.BuildExceptionReporter] at org.grails.gradle.plugin.GrailsTask.createLauncher(GrailsTask.groovy:107)
09:17:15.192 [ERROR] [org.gradle.BuildExceptionReporter] at org.grails.gradle.plugin.GrailsTask.executeCommand(GrailsTask.groovy:56)
09:17:15.192 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:196)
09:17:15.193 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:102)
09:17:15.193 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:99)
09:17:15.193 [ERROR] [org.gradle.BuildExceptionReporter] at org.grails.gradle.plugin.GrailsTask_Decorated.invokeMethod(Unknown Source)
09:17:15.193 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23)
09:17:15.193 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:150)
09:17:15.193 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:145)
09:17:15.193 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:477)
09:17:15.194 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:466)
09:17:15.194 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:60)
09:17:15.194 [ERROR] [org.gradle.BuildExceptionReporter] ... 53 more
09:17:15.194 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.ClassNotFoundException: groovy.lang.GroovyObject
09:17:15.194 [ERROR] [org.gradle.BuildExceptionReporter] at org.grails.launcher.RootLoader.findClass(RootLoader.java:147)
09:17:15.194 [ERROR] [org.gradle.BuildExceptionReporter] at org.grails.launcher.RootLoader.loadClass(RootLoader.java:119)
09:17:15.194 [ERROR] [org.gradle.BuildExceptionReporter] ... 68 more
09:17:15.194 [ERROR] [org.gradle.BuildExceptionReporter]
09:17:15.195 [LIFECYCLE] [org.gradle.BuildResultLogger]
09:17:15.195 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED
答案 0 :(得分:1)
坏消息 - 下面的文件通过让测试运行来部分修复问题,但在将构建打包到WAR时失败。我只能假设在grails或groovy部分中缺少依赖性。我在底部有一个更简单的工作版本,它可以在本地进行测试和打包。不幸的是,它仍然无法与最新的Jenkins插件一起使用。
感谢Peter Ledbrook和Peter Niederwieser帮助解决我的问题。
更正的gradle文件是:以下文件允许测试运行(gradle测试)但在打包期间失败并出现相同的错误(gradle war):
ext.grailsVersion = '2.0.4'
task createWrapper(type: Wrapper) {
gradleVersion = '1.0'
}
apply plugin: 'groovy'
repositories {
mavenCentral()
}
dependencies {
groovy group: 'org.codehaus.groovy', name: 'groovy-all', version: '1.8.6'
}
buildscript {
repositories {
maven { url {'http://repo.grails.org/grails/core/'} }
}
dependencies {
classpath 'org.grails:grails-gradle-plugin:1.1.1-SNAPSHOT',
"org.grails:grails-bootstrap:2.0.4"
}
}
apply plugin: 'grails'
repositories {
mavenCentral()
maven { url 'http://repo.grails.org/grails/core/' }
maven { url 'http://repo.grails.org/grails/plugins/' }
}
dependencies {
compile "org.grails:grails:2.0.4",
"org.grails:grails-core:2.0.4",
"org.grails:grails-hibernate:2.0.4",
"org.grails:grails-logging:2.0.4",
"org.grails:grails-plugin-controllers:2.0.4",
"org.grails:grails-plugin-services:2.0.4",
"org.grails:grails-plugin-domain-class:2.0.4",
"org.grails:grails-plugin-datasource:2.0.4",
"org.grails:grails-plugin-i18n:2.0.4",
"org.grails:grails-spring:2.0.4",
"org.grails.plugins:spring-security-core:1.2.7.3",
"org.grails.plugins:spring-security-ldap:1.0.6"
}
本地工作的简单文件是:
task createWrapper(type: Wrapper) {
gradleVersion = '1.0'
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.connorgarvey.gradle:gradle-grails-wrapper:1.0'
}
}
apply plugin: 'grails'
grails {
version '2.0.4'
}
可能有更好的方法 - 但我无法解决这个问题!
答案 1 :(得分:0)
看起来像grails-gradle-plugin的类加载问题。也许该插件与您使用的Grails或Gradle版本不兼容。插件作者可能会了解更多。
答案 2 :(得分:0)
你实际上需要在buildcript中引导groovy的版本......
查看Gradle / Grails application以获取更完整的示例。