2014-11-17 2 views
0

Я использую spring-data-neo4j и Grails. При выполнении «grails test-app» появляется следующая ошибка.Grails Neo4j - почему POM включена как зависимость?

У меня есть раздел зависимостей следующий 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) 

EDIT:

Содержимое каталога /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 

ДАЛЕЕ EDIT:

Я не получаю эту ошибку при запуске «grails run-app».

ДАЛЕЕ EDIT:

Это, как представляется, связано с тем, что 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> 

Если я удалить <type>pom</type> строку в загруженном Neo4j-сервера 2.1.5.pom в моем каталоге ~/.m2, я не ошибка.

Зачем нужен <type>pom</type>, и это необходимо?

+0

Не имеет значения, когда используется 'compile (group:" org.neo4j.app ", имя:" neo4j-server ", версия:" 2.1.5 ", классификатор:" static-web ")'? –

+0

Нет, не имеет значения, если я перейду на версию 2.1.4. Содержимое вопроса добавлено в вопрос. – John

+0

@StefanArmbruster, проблема связана с тем, что файл POM включен в качестве зависимости от neo4j-сервера. Я не уверен, что это по дизайну, пожалуйста, не могли бы вы взглянуть на мое редактирование в нижней части вопроса? – John

ответ

0

Я думаю, что у вас в вашей сети был сломанный DNS-сервер (например, в гостинице/Хот-споте), когда вы впервые загрузили это (просто просмотрите neo4j-2.1.5.jar), который должен быть намного больше.

Удалите этот каталог maven и повторите попытку подключения к сети.

+0

Спасибо @Michael, но, к сожалению, я просто получаю ту же проблему. Что-то не так с загружаемыми данными или с тем, как Grails его загружает. Мне не нужен сервер для тестирования, поэтому обходной путь - это просто не включать его в среду тестирования. – John

+0

Привет @Michael Hunger, файл jar на MavenCentral здесь и есть 24kB: http://mvnrepository.com/artifact/org.neo4j/neo4j/2.1.6 (как и v2.1.5). Возможно, что-то не так с данными, хранящимися на репо? – John

+0

Проблема представляется результатом того, что файл POM включен в файл neo4j-server-2.1.5.pom, и я не знаю, является ли это по дизайну. Пожалуйста, не могли бы вы взглянуть на мое редактирование в нижней части вопроса? – John

1

Хммм, я попробовал решение, предложенное Майклом, без везения - что-то не так с тем, что я загружаю. Решение было не включать в себя сервер при тестировании:

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

Это лишь временное решение реальной проблемы (и я не знаю, что реальная проблема на самом деле).

+0

Это тоже работает для меня ... Я несколько раз вытаскиваю свои волосы, задаваясь вопросом, почему я получаю это unzip-исключение во время тестирования. –

Смежные вопросы