unit-testing - Grails Neo4j-为什么将POM包含为依赖项?

标签 unit-testing grails neo4j spring-data-neo4j

我正在使用spring-data-neo4j和Grails。执行“grails test-app”时出现以下错误。

我有以下BuildConfig.groovy依赖项部分:

dependencies {
    // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
    // runtime 'mysql:mysql-connector-java:5.1.29'
    // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41'
    test "org.grails:grails-datastore-test-support:jar:1.0-grails-2.4"

    compile "org.springframework:spring-context:jar:4.0.6.RELEASE"
    compile "org.springframework:spring-tx:jar:4.0.6.RELEASE"
    compile "org.springframework.data:spring-data-neo4j:jar:3.2.1.RELEASE"
    compile "org.hibernate:hibernate-validator:jar:5.1.3.Final"
    compile "org.neo4j.app:neo4j-server:jar:2.1.5"
    compile "org.neo4j.app:neo4j-server:jar:static-web:2.1.5"           
}

错误如下。
| Error Unable to obtain resource from /Users/john/.m2/repository/org/neo4j/neo4j/2.1.5/neo4j-2.1.5.pom: 
| Error java.util.zip.ZipException: error in opening zip file
| Error     at java.util.zip.ZipFile.open(Native Method)
| Error     at java.util.zip.ZipFile.<init>(ZipFile.java:220)
| Error     at java.util.zip.ZipFile.<init>(ZipFile.java:150)
| Error     at java.util.jar.JarFile.<init>(JarFile.java:166)
| Error     at java.util.jar.JarFile.<init>(JarFile.java:130)
| Error     at org.apache.tools.ant.AntClassLoader.getResourceURL(AntClassLoader.java:1006)
| Error     at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.findNextResource(AntClassLoader.java:149)
| Error     at org.apache.tools.ant.AntClassLoader$ResourceEnumeration.nextElement(AntClassLoader.java:134)
| Error     at org.apache.tools.ant.util.CollectionUtils$CompoundEnumeration.nextElement(CollectionUtils.java:241)
| Error     at sun.misc.CompoundEnumeration.nextElement(CompoundEnumeration.java:61)
| Error     at org.codehaus.groovy.runtime.m12n.ExtensionModuleScanner.scanClasspathModules(ExtensionModuleScanner.java:52)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport$ExtensionMethodCache.getExtensionMethods(StaticTypeCheckingSupport.java:1847)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.findDGMMethodsForClassNode(StaticTypeCheckingSupport.java:180)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.findDGMMethodsForClassNode(StaticTypeCheckingSupport.java:166)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingSupport.findDGMMethodsByNameAndArguments(StaticTypeCheckingSupport.java:880)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethod(StaticTypeCheckingVisitor.java:3623)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.findMethodOrFail(StaticTypeCheckingVisitor.java:3384)
| Error     at org.codehaus.groovy.transform.sc.StaticCompilationVisitor.findMethodOrFail(StaticCompilationVisitor.java:299)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.getResultType(StaticTypeCheckingVisitor.java:3300)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitBinaryExpression(StaticTypeCheckingVisitor.java:514)
| Error     at org.codehaus.groovy.ast.expr.BinaryExpression.visit(BinaryExpression.java:49)
| Error     at org.codehaus.groovy.ast.CodeVisitorSupport.visitBooleanExpression(CodeVisitorSupport.java:166)
| Error     at org.codehaus.groovy.ast.expr.BooleanExpression.visit(BooleanExpression.java:40)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitIfElse(StaticTypeCheckingVisitor.java:2955)
| Error     at org.codehaus.groovy.ast.stmt.IfStatement.visit(IfStatement.java:41)
| Error     at org.codehaus.groovy.ast.CodeVisitorSupport.visitBlockStatement(CodeVisitorSupport.java:35)
| Error     at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitBlockStatement(ClassCodeVisitorSupport.java:163)
| Error     at org.codehaus.groovy.ast.stmt.BlockStatement.visit(BlockStatement.java:69)
| Error     at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitClassCodeContainer(ClassCodeVisitorSupport.java:101)
| Error     at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitConstructorOrMethod(ClassCodeVisitorSupport.java:112)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitConstructorOrMethod(StaticTypeCheckingVisitor.java:1622)
| Error     at org.codehaus.groovy.ast.ClassCodeVisitorSupport.visitMethod(ClassCodeVisitorSupport.java:123)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.startMethodInference(StaticTypeCheckingVisitor.java:1941)
| Error     at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethod(StaticTypeCheckingVisitor.java:1900)
| Error     at org.codehaus.groovy.transform.sc.StaticCompilationVisitor.visitMethod(StaticCompilationVisitor.java:144)
| Error     at org.codehaus.groovy.transform.sc.StaticCompileTransformation.visit(StaticCompileTransformation.java:74)
| Error     at org.codehaus.groovy.transform.ASTTransformationVisitor.visitClass(ASTTransformationVisitor.java:132)
| Error     at org.codehaus.groovy.transform.ASTTransformationVisitor$2.call(ASTTransformationVisitor.java:176)
| Error     at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1047)
| Error     at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:583)
| Error     at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:561)
| Error     at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:538)
| Error     at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:517)
| Error     at org.codehaus.groovy.tools.FileSystemCompiler.compile(FileSystemCompiler.java:59)
| Error     at org.codehaus.groovy.tools.FileSystemCompiler.doCompilation(FileSystemCompiler.java:215)
| Error     at org.codehaus.groovy.ant.Groovyc.runCompiler(Groovyc.java:1161)
| Error     at org.codehaus.groovy.ant.Groovyc.compile(Groovyc.java:1212)
| Error     at org.codehaus.groovy.grails.compiler.Grailsc.compile(Grailsc.java:78)
| Error     at org.codehaus.groovy.ant.Groovyc.execute(Groovyc.java:827)
| Error     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
| Error     at sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source)
| Error     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
| Error     at java.lang.reflect.Method.invoke(Method.java:483)
| Error     at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270)
| Error     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
| Error     at groovy.util.AntBuilder.performTask(AntBuilder.java:319)
| Error     at groovy.util.AntBuilder.nodeCompleted(AntBuilder.java:264)
| Error     at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:147)
| Error     at groovy.util.AntBuilder.doInvokeMethod(AntBuilder.java:203)
| Error     at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:64)
| Error     at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:907)
| Error     at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:884)
| Error     at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:164)
| Error     at org.codehaus.groovy.grails.test.runner.GrailsProjectTestCompiler.compileTests(GrailsProjectTestCompiler.groovy:74)
| Error     at org.codehaus.groovy.grails.test.runner.GrailsProjectTestRunner.processTests(GrailsProjectTestRunner.groovy:392)
| Error     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| Error     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
| Error     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
| Error     at java.lang.reflect.Method.invoke(Method.java:483)
| Error     at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270)
| Error     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
| Error     at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
| Error     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207)
| Error     at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
| Error     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016)
| Error     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1152)
| Error     at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
| Error     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016)
| Error     at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
| Error     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49)
| Error     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
| Error     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
| Error     at org.codehaus.groovy.grails.test.runner.GrailsProjectTestRunner$_runAllTests_closure7.doCall(GrailsProjectTestRunner.groovy:313)
| Error     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| Error     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
| Error     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
| Error     at java.lang.reflect.Method.invoke(Method.java:483)
| Error     at org.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1270)
| Error     at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
| Error     at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
| Error     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207)
| Error     at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110)
| Error     at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016)
| Error     at groovy.lang.Closure.call(Closure.java:423)
| Error     at org.codehaus.groovy.runtime.DefaultGroovyMethods.callClosureForMapEntry(DefaultGroovyMethods.java:4271)
| Error     at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:1408)
| Error     at org.codehaus.groovy.runtime.dgm$151.invoke(Unknown Source)
| Error     at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:271)
| Error     at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:53)
| Error     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
| Error     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
| Error     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
| Error     at org.codehaus.groovy.grails.test.runner.GrailsProjectTestRunner.runAllTests(GrailsProjectTestRunner.groovy:299)
| Error     at org.codehaus.groovy.grails.test.runner.GrailsProjectTestRunner.runAllTests(GrailsProjectTestRunner.groovy:214)
| Error     at org.codehaus.groovy.grails.test.runner.GrailsProjectTestRunner.runAllTests(GrailsProjectTestRunner.groovy)
| Error     at org.codehaus.groovy.grails.test.runner.GrailsProjectTestRunner$runAllTests$0.call(Unknown Source)
| Error     at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
| Error     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
| Error     at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
| Error     at org.codehaus.groovy.grails.cli.fork.testing.ForkedGrailsTestRunner.runInstance(ForkedGrailsTestRunner.groovy:128)
| Error     at org.codehaus.groovy.grails.cli.fork.ForkedGrailsProjectClassExecutor.run(ForkedGrailsProjectClassExecutor.groovy:74)
| Error     at org.codehaus.groovy.grails.cli.fork.testing.ForkedGrailsTestRunner.main(ForkedGrailsTestRunner.groovy:75)

编辑:

目录/Users/john/.m2/repository/org/neo4j/neo4j/2.1.5的内容为:
-rw-r--r--  1 john  staff    193 18 Nov 08:45 _remote.repositories
-rw-r--r--  1 john  staff  23962 18 Nov 08:45 neo4j-2.1.5.jar
-rw-r--r--  1 john  staff     40 18 Nov 08:45 neo4j-2.1.5.jar.sha1
-rw-r--r--  1 john  staff  11387 18 Nov 08:45 neo4j-2.1.5.pom
-rw-r--r--  1 john  staff     40 18 Nov 08:45 neo4j-2.1.5.pom.sha1

进一步编辑:

运行“grails run-app”时,我没有收到此错误。

进一步编辑:

这似乎与Neo4j服务器将POM文件作为依赖项拉入的事实有关。然后,Grails尝试解压缩该文件,但是由于它是POM文件,因此会导致看到错误。

neo4j-server-2.1.5.pom中,有如下所示的依赖项:
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>${project.version}</version>
<type>pom</type>
</dependency>

如果删除〜/ .m2目录中下载的neo4j-server-2.1.5.pom中的<type>pom</type>行,则不会出现任何错误。

为什么包括<type>pom</type>,这是必要的吗?

最佳答案

嗯,我没有运气就尝试了迈克尔建议的解决方案-我下载的内容有问题。解决方案是在测试时不包括服务器:

// BuildConfig.groovy
if (Environment.current != Environment.TEST){
    compile "org.neo4j.app:neo4j-server:jar:2.1.5"
    compile(group:"org.neo4j.app", name:"neo4j-server", version:"2.1.5", classifier:"static-web")
}

这只是解决实际问题的方法(我不知道真正的问题到底是什么)。

关于unit-testing - Grails Neo4j-为什么将POM包含为依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26980240/

相关文章:

mysql - 使用 Liquibase 从 MySQL 表中拆分列

grails - 性能问题碧 Jade 报告和grails/groovy

neo4j - 无法将 neo4j shell 连接到本地服务器

node.js - 在express中使用jest测试重定向

Angular 服务单元测试 - 是否伪造嵌套方法?

PHPUnit 数据库测试。固定装置没有设置?

python - 如何检查 py2neo 返回的记录是否为空?

java - 如何在 JUnit4 中按特定顺序运行测试方法?

grails - Grails Controller 可以选择布局吗?

java - Neo4j 索引(使用 Lucene)- 组织节点 "types"的好方法?