1

固定的

大家好,我现在可以正常工作了。原来我错过了 Groovy 插件(感谢 Peter)。请参阅下面的答案。原帖留作参考。


我们是 grails 的新手,所有的东西都是 gradle 的。我已经尝试过使用 gradle 构建我们的 grails 应用程序的最简单案例,但无论我尝试什么命令(具有讽刺意味的是“createWrapper”除外,它有效但没有帮助)我得到:

$ 分级测试
不推荐使用动态属性:http://gradle.org/docs/current/dsl/org.gradle.api.plugins.ExtraPropertiesExtension.html
不推荐使用的动态属性:“根项目'IMPACT'”上的“grailsVersion”,值:“2.0.4”。
:测试

FAILURE:构建失败并出现异常。

* 什么地方出了错:
任务 ':test' 执行失败。
> groovy/lang/GroovyObject

* 尝试:
使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。

构建失败

总时间:4.867 秒

我使用哪个命令没有区别,输出总是相同的。

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 测试:测试
>
> FAILURE:构建失败并出现异常。
>
> * 出了什么问题:任务 ':test' 执行失败。
>> groovy/lang/GroovyObject
>
> * 尝试:使用 --info 或 --debug 选项运行以获得更多日志输出。
>
> * 例外情况是:
>
> org.gradle.api.tasks.TaskExecutionException:任务执行失败
>':测试'。在
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:68)
> 在
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
> 在
> org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)
> 在
> org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34)
> 在
> org.gradle.cache.internal.DefaultCacheAccess$2.create(DefaultCacheAccess.java:200)
> 在
> org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:172)
> 在
> org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:198)
> 在
> org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:111)
> 在
> org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
> 在
> org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32)
> 在
> org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
> 在
> org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
> 在
> org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
> 在
> org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
> 在
> org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
> 在
> org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
> 在
> org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:247)
> 在
> org.gradle.execution.DefaultTaskGraphExecuter.executeTask(DefaultTaskGraphExecuter.java:192)
> 在
> org.gradle.execution.DefaultTaskGraphExecuter.doExecute(DefaultTaskGraphExecuter.java:177)
> 在
> org.gradle.execution.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:83)
> 在
> org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:36)
> 在
> org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
> 在
> org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
> 在
> org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
> 在
> org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter$1.run(TaskCacheLockHandlingBuildExecuter.java:31)
> 在
> org.gradle.cache.internal.DefaultCacheAccess$1.create(DefaultCacheAccess.java:111)
> 在
> org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:126)
> 在
> org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:109)
> 在
> org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:103)
> 在
> org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
> 在
> org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter.execute(TaskCacheLockHandlingBuildExecuter.java:29)
> 在
> org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
> 在
> org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
> 在
> org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
> 在
> org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
> 在
> org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
> 在
> org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
> 在
> org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:155)
> 在
> org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:110)
> 在
> org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:78)
> 在
> org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:42)
> 在
> org.gradle.launcher.cli.RunBuildAction.execute(RunBuildAction.java:28)
> 在
> org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:201)
> 在
> org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:174)
> 在
> org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:170)
> 在
> org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:139)
> 在
> org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:31)
> 在
> org.gradle.launcher.exec.ExceptionReportingAction.execute(ExceptionReportingAction.java:20)
> 在 org.gradle.launcher.Main.doAction(Main.java:48) 在
> org.gradle.launcher.exec.EntryPoint.run(EntryPoint.java:45) 在
> org.gradle.launcher.Main.main(Main.java:39) 在
> org.gradle.launcher.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
> 在 org.gradle.launcher.ProcessBootstrap.run(ProcessBootstrap.java:32)
> 在 org.gradle.launcher.GradleMain.main(GradleMain.java:24) 引起:
> java.lang.NoClassDefFoundError: groovy/lang/GroovyObject at
> org.grails.launcher.RootLoader.oldFindClass(RootLoader.java:143) 在
> org.grails.launcher.RootLoader.loadClass(RootLoader.java:115) 在
> org.grails.launcher.GrailsLauncher.(GrailsLauncher.java:70) 在
> org.grails.gradle.plugin.GrailsTask.createLauncher(GrailsTask.groovy:107)
> 在
> org.grails.gradle.plugin.GrailsTask.executeCommand(GrailsTask.groovy:56)
> 在
> org.gradle.api.internal.BeanDynamicObject$MetaClassAdapter.invokeMethod(BeanDynamicObject.java:196)
> 在
> org.gradle.api.internal.BeanDynamicObject.invokeMethod(BeanDynamicObject.java:102)
> 在
> org.gradle.api.internal.CompositeDynamicObject.invokeMethod(CompositeDynamicObject.java:99)
> 在 org.grails.gradle.plugin.GrailsTask_Decorated.invokeMethod(未知
> 来源)在
> org.gradle.util.ReflectionUtil.invoke(ReflectionUtil.groovy:23) 在
> org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:150)
> 在
> org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$4.execute(AnnotationProcessingTaskFactory.java:145)
> 在
> org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:477)
> 在
> org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:466)
> 在
> org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:60)
> ... 53 更多原因:java.lang.ClassNotFoundException:
> groovy.lang.GroovyObject 在
> org.grails.launcher.RootLoader.findClass(RootLoader.java:147) 在
> org.grails.launcher.RootLoader.loadClass(RootLoader.java:119) ... 68
> 更多
>
>
> 构建失败
>
> 总时间:5.534 秒

非常感谢任何指针或评论。

--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
4

3 回答 3

1

坏消息 - 下面的文件通过让测试运行部分解决了问题,但在将构建打包到 WAR 时失败。我只能假设 grails 或 groovy 部分中缺少依赖项。我在底部有一个更简单的工作版本,它可以在本地用于测试和打包。不幸的是,它仍然不适用于最新的 Jenkins 插件。

感谢 Peter Ledbrook 和 Peter Niederwieser 帮助解决我的问题。

更正的 gradle 文件是:以下文件允许测试运行(gradle test)但在打包过程中失败并出现相同的错误(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'
}

可能有更好的方法 - 但我无法解决!

于 2012-07-19T16:49:59.537 回答
0

看起来像 grails-gradle-plugin 的类加载问题。可能插件与您使用的 Grails 或 Gradle 版本不兼容。插件作者可能知道更多。

于 2012-07-13T20:41:56.907 回答
0

你实际上需要在你的构建脚本中引导 groovy 的版本......

查看Gradle / Grails 应用程序以获得更完整的示例。

于 2012-09-05T13:42:31.237 回答