运行 测试期间的 Grails NoClassDefFoundError BuildableCriteria
Grails NoClassDefFoundError BuildableCriteria in during run test
我在 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.evaluate(AbstractRuleInterceptor.java:37)
at grails.test.runtime.TestRuntimeJunitAdapter.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.evaluate(AbstractRuleInterceptor.java:37)
at grails.test.runtime.TestRuntimeJunitAdapter.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
接口包含在 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 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.evaluate(AbstractRuleInterceptor.java:37)
at grails.test.runtime.TestRuntimeJunitAdapter.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.evaluate(AbstractRuleInterceptor.java:37)
at grails.test.runtime.TestRuntimeJunitAdapter.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
接口包含在 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"
// ...
}
}