运行测试期间出现 Grails NoClassDefFoundError BuildableCriteria

标签 grails grails-plugin grails-2.0

我有一个关于 grails 2.3.9 的项目,我已将此项目升级为 grails 2.5.6、java 8
我已经成功升级了这个,但是在测试用例中出错(grails test-app)

java.lang.NoClassDefFoundError: org/grails/datastore/mapping/query/api/BuildableCriteria
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetPublicMethods(Class.java:2902)
    at java.lang.Class.getMethods(Class.java:1615)
    at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1336)
    at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1197)
    at java.beans.Introspector.getBeanInfo(Introspector.java:426)
    at java.beans.Introspector.getBeanInfo(Introspector.java:173)
    at grails.test.mixin.domain.TestGormEnhancer.getStaticApi(DomainClassUnitTestMixin.groovy:188)
    at org.grails.datastore.gorm.GormEnhancer.addStaticMethods(GormEnhancer.groovy:118)
    at org.grails.datastore.gorm.GormEnhancer.enhance(GormEnhancer.groovy:112)
    at org.grails.datastore.gorm.GormEnhancer.enhance(GormEnhancer.groovy:95)
    at grails.test.mixin.domain.DomainClassUnitTestMixin.mockDomains(DomainClassUnitTestMixin.groovy:99)
    at org.spockframework.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:153)
    at org.spockframework.runtime.model.MethodInfo.invoke(MethodInfo.java:84)
    at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:88)
    at org.spockframework.runtime.extension.builtin.AbstractRuleInterceptor$1.evaluate(AbstractRuleInterceptor.java:37)
    at grails.test.runtime.TestRuntimeJunitAdapter$1$2.evaluate(TestRuntimeJunitAdapter.groovy:49)
    at org.spockframework.runtime.extension.builtin.TestRuleInterceptor.intercept(TestRuleInterceptor.java:38)
    at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:87)
    at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:88)
    at org.spockframework.runtime.extension.builtin.AbstractRuleInterceptor$1.evaluate(AbstractRuleInterceptor.java:37)
    at grails.test.runtime.TestRuntimeJunitAdapter$3$4.evaluate(TestRuntimeJunitAdapter.groovy:76)
    at org.spockframework.runtime.extension.builtin.ClassRuleInterceptor.intercept(ClassRuleInterceptor.java:38)
    at org.spockframework.runtime.extension.MethodInvocation.proceed(MethodInvocation.java:87)
Caused by: java.lang.ClassNotFoundException: org.grails.datastore.mapping.query.api.BuildableCriteria
    at org.codehaus.groovy.tools.RootLoader.findClass(RootLoader.java:179)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at org.codehaus.groovy.tools.RootLoader.loadClass(RootLoader.java:151)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我还添加了 datastore-test-support 依赖项,但遇到了同样的问题:
测试“org.grails:grails-datastore-test-support:1.0-grails-2.4”
它在 grails 2.3.9 上运行良好

请在这里帮忙

谢谢!

最佳答案

org.grails.datastore.mapping.query.api.BuildableCriteria接口(interface)包含在grails-datastore-core-3.1.5.RELEASE.jar默认情况下,它会作为 org.grails.plugins:hibernate4:4.3.10 的传递依赖项被拉入 Grails 2.5.6。插入。我将验证您是否已在 BuildConfig.groovy 中表达了对它的依赖。 .

grails.project.dependency.resolution = {
    // ...
    plugins {
        // ...
        runtime ":hibernate4:4.3.10"
        // ...
    }
}

关于运行测试期间出现 Grails NoClassDefFoundError BuildableCriteria,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47002868/

相关文章:

grails - 如何在 grails 中模拟命名查询?

grails - Grails Gorm MongoDB索引嵌入式字符串映射

hibernate - Grails:测试乐观锁定

grails - Grails自定义环境和Web应用程序

grails - 如何使用3.1.6版在GGTS中创建grails项目

grails - 在 grails 2.5.1 上安装本地插件

git - Grails警告:没有安装SCM提供程序Stash GIT存储库

Grails uglifyjs 插件不起作用

html - 将 CSS 编译成 HTML 作为 Grails 中的内联样式?

在 Grails 中缓存?