1

下面是我的pom.xml的依赖关系,Maven的依赖版本冲突:应用程序使用Spring数据的Neo4j和Spring数据JPA

<dependency> 
     <groupId>io.spring.platform</groupId> 
     <artifactId>platform-bom</artifactId> 
     <!--<version>1.1.4.RELEASE</version> --> 
     <version>2.0.7.RELEASE</version> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency> 
    <dependency> 
     <!-- Import dependency management from Spring Boot --> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-dependencies</artifactId> 
     <version>1.4.0.RELEASE</version> 
     <!--<version>1.2.7.RELEASE</version> --> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-releasetrain</artifactId> 
     <version>Hopper-SR2</version> 
     <type>pom</type> 
     <scope>import</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.data</groupId> 
     <artifactId>spring-data-neo4j</artifactId> 
     <version>4.1.0.RC1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 

和许多其他依赖

我的应用程序使用内存用于交易数据存储的-derby(嵌入式配置文件)/ MySQL(远程配置文件)和用于处理分层数据存储的Neo4j图形数据库。我的要求是根据maven配置文件以远程和嵌入模式运行Neo4j。默认情况下,Spring版本管理器使用旧版本的Spring-data-neo4j(3.x.x),但嵌入式Neo4j支持仅在版本4.0.0后可用。当我建立我的如下图所示,上述我得到一个错误显示的配置应用,

// ...exception stacktrace 

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'locationRepository': Invocation of init method failed; nested exception is java.lang.AbstractMethodError 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1578) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:545) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) 
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) 
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:1192) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1116) 
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1014) 
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:545) 
    ... 57 common frames omitted 
Caused by: java.lang.AbstractMethodError: null 
    at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.<init>(RepositoryFactorySupport.java:416) 
    at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:206) 
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:251) 
    at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:237) 
    at org.springframework.data.neo4j.repository.support.GraphRepositoryFactoryBean.afterPropertiesSet(GraphRepositoryFactoryBean.java:43) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1637) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1574) 
    ... 67 common frames omitted 

我想这个错误是因为该版本冲突Spring的数据公地的。有没有办法解决这个错误?

回答

0

Hopper-SR2支持Spring-data-neo4j 4.1.2。你为什么要降级到4.1.0.RC1?尝试删除降级或明确将其设置为4.1.2。

如果您仍然认为您获得了3.x版本,请运行下面的代码并查看3.x版本中的内容。

mvn dependency:tree -Dverbose -Dincludes=spring-data-neo4j 

您可以使用相同的过程来查找与spring-data-commons的冲突。只需更改include参数(或者为所有依赖项省略)。如果发现冲突,请在您的pom.xml中明确包含正确的版本。