Unit testing Grails Neo4j-为什么POM作为依赖项包含?

Unit testing Grails Neo4j-为什么POM作为依赖项包含?,unit-testing,grails,neo4j,spring-data-neo4j,Unit Testing,Grails,Neo4j,Spring Data Neo4j,我使用的是spring-data-neo4j和Grails。我在执行“grails测试应用程序”时遇到以下错误 我有以下BuildConfig.groovy依赖项部分: dependencies { // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g. // runtime 'mysql:mysql-connector-ja

我使用的是spring-data-neo4j和Grails。我在执行“grails测试应用程序”时遇到以下错误

我有以下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)
进一步编辑:

我在运行“grails run app”时没有遇到此错误

进一步编辑:

这似乎与Neo4j服务器将POM文件作为依赖项拉入有关。Grails随后试图解压该文件,但由于它是POM文件,因此导致出现错误

在中,存在如下所示的依赖关系:

<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>${project.version}</version>
<type>pom</type>
</dependency>

org.neo4j
neo4j
${project.version}
聚甲醛
如果在我的~/.m2目录中删除下载的neo4j-server-2.1.5.pom中的
pom
行,则不会出现错误


为什么包含了pom,而且它是必要的?

我认为当你第一次下载它时,你的网络中有一个坏掉的DNS服务器(例如在一个酒店/热点中)(只需查看neo4j-2.1.5.jar),它应该大得多


删除maven目录并在声音网络连接上重试。

嗯,我尝试了Michael建议的解决方案,但没有成功-我下载的内容有问题。解决方案是在测试时不包括服务器:

// 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")
}

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

使用
编译(组:“org.neo4j.app”、名称:“neo4j服务器”、版本:“2.1.5”、分类器:“静态web”)时会有什么不同吗?
不会,如果我改为版本2.1.4,也不会有什么不同。目录的内容已添加到问题中。@StefanArmburster,该问题似乎是由于POM文件作为neo4j服务器的依赖项包含而导致的。我不确定这是否是故意的,请你看看我在问题底部的编辑好吗?谢谢@Michael,但不幸的是我也遇到了同样的问题。正在下载的数据或Grails下载数据的方式都有问题。我不需要服务器进行测试,所以解决方法就是在测试环境时不包括它。也许回购协议中存储的数据有问题?问题似乎是由于neo4j-server-2.1.5.POM文件中包含POM文件,我不知道这是否是出于设计。请你看看我在问题底部的编辑好吗?这对我也很有用。。。几个月来,我一直在琢磨为什么在测试期间会出现这种解压异常。
// 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")
}