Maven dependency version conflict: Application using Spring data Neo4j and Spring data JPA -


here dependencies in pom.xml,

    <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 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> 

and many other dependencies

my application uses in-memory-derby (embedded profile)/mysql(remote profile) transactional data storage , neo4j graph database handle hierarchical data storage. requirement run neo4j in both remote , embedded mode based on maven profile. default spring version manager uses older version of spring-data-neo4j (3.x.x) embedded neo4j support available after release 4.0.0. when build application config shown above getting error shown below,

// ...exception stacktrace  caused by: org.springframework.beans.factory.beancreationexception: error creating bean name 'locationrepository': invocation of init method failed; nested exception java.lang.abstractmethoderror     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1578)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:545)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:482)     @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:306)     @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:230)     @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:302)     @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:197)     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.findautowirecandidates(defaultlistablebeanfactory.java:1192)     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.doresolvedependency(defaultlistablebeanfactory.java:1116)     @ org.springframework.beans.factory.support.defaultlistablebeanfactory.resolvedependency(defaultlistablebeanfactory.java:1014)     @ org.springframework.beans.factory.annotation.autowiredannotationbeanpostprocessor$autowiredfieldelement.inject(autowiredannotationbeanpostprocessor.java:545)     ... 57 common frames omitted caused by: java.lang.abstractmethoderror: null     @ org.springframework.data.repository.core.support.repositoryfactorysupport$queryexecutormethodinterceptor.<init>(repositoryfactorysupport.java:416)     @ org.springframework.data.repository.core.support.repositoryfactorysupport.getrepository(repositoryfactorysupport.java:206)     @ org.springframework.data.repository.core.support.repositoryfactorybeansupport.initandreturn(repositoryfactorybeansupport.java:251)     @ org.springframework.data.repository.core.support.repositoryfactorybeansupport.afterpropertiesset(repositoryfactorybeansupport.java:237)     @ org.springframework.data.neo4j.repository.support.graphrepositoryfactorybean.afterpropertiesset(graphrepositoryfactorybean.java:43)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1637)     @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1574)     ... 67 common frames omitted 

i guess error because of conflicting versions of spring-data-commons. there way around error?

hopper-sr2 has support spring-data-neo4j 4.1.2. why downgrading 4.1.0.rc1? try removing downgrade or explicitly setting 4.1.2.

if still think getting 3.x version, run below , pulling in 3.x version.

mvn dependency:tree -dverbose -dincludes=spring-data-neo4j 

you can use same process conflicts spring-data-commons. change include parameter (or omit dependencies). if find conflict, explicitly include correct version in pom.xml.


Comments