1

Вот зависимость в моей pom.xml,Maven версия зависимости конфликт: приложения с помощью Spring данных Neo4j и пружинных данных 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 для обработки иерархического хранения данных. Мое требование - запустить Neo4j в удаленном и встроенном режиме на основе профиля maven. По умолчанию менеджер Spring 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 

Вы можете использовать тот же процесс, чтобы искать конфликты с весенними данными. Просто измените параметр include (или опустите его для всех зависимостей). Если вы обнаружите конфликт, явно укажите правильную версию в свой pom.xml.

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