有没有人成功获得Spring Boot,Spring Data Elasticsearch和Elasticsearch 5.x?
我更新了我的pom以使用spring-data-elasticsearch 3.0.0.RELEASE(刚刚发布),它在Github中提交说明它支持ES 5。
我收到的错误是由于没有声明对spring-data-common
的依赖造成的。在没有版本的情况下添加后,我注意到它显然是由Spring Boot管理的,并且在1.13.7中引入.RELEASE
这导致:java.lang.NoClassDefFoundError: org/springframework/data/mapping/model/Property
然后我将spring-data-common
提升到2.0.0.RELEASE认为所有内容的最新版本应该是兼容的。这会在存储库连线时导致AbstractMethodError异常。
任何人都可以提供任何提示吗?以下是我的POM的依赖关系
Managed versions from Parent POM:
<spring-boot.version>1.5.7.RELEASE</spring-boot.version>
<spring-cloud.version>Dalston.RELEASE</spring-cloud.version>
From POM from the child module where things don't work
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
<!-- <version>2.0.0.RELEASE</version> -->
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-elasticsearch</artifactId>
<version>3.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
</dependencies>
答案 0 :(得分:0)
我曾经将spring-data-elasticsearch(使用ES 2.x)项目迁移到ES 5.x.
我丢失了来源,但我还有jar here
答案 1 :(得分:0)
你们让我走上正轨。我升级如下:
Spring Core(及相关):5.0.0.RELEASE Spring Boot:2.0.0.M4 Spring Cloud:Finchley.M2
有了这些,托管版本的更新如下:
spring-data-commons:2.0.0.RC3(来自发布列车KAY-RC3) spring-data-elasticsearch:3.0.0.RC3(来自发布列车KAY-RC3) elasticsearch and transport:5.5.2(符合我的5.x要求)
我们在父pom中为其他子模块管理了Jackson的版本,导致不兼容的版本被拉入。我将Spring Boot项目中的版本覆盖到Spring中定义的版本$ {jackson.version},如下所示: / p>
spring-jackson-version=2.9.1
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>${spring-jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>${spring-jackson.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>${spring-jackson.version}</version>
</dependency>
我从我的回购中收到了另一个错误,我认为这是由于我的数据模型造成的。所有类路径错误似乎已经消失。如果我发现更进一步的话,我会再发一次更新。什么是cf!
感谢您的提示。
答案 2 :(得分:0)
编辑标题的任何人都做了不准确的描述。如最初所述,问题是依赖地狱&#34;。并没有缺少依赖关系,而是大量的传递依赖关系,所有需要的版本都以魔术非显而易见/未记录的方式进行协调。 - JvmSd121