没有声明依赖导致的错误
Errors caused by not having declared a dependency
有没有人成功地让 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>
我曾将 spring-data-elasticsearch(使用 ES 2.x)项目迁移到使用 ES 5.x。
我失去了来源,但我还有罐子here
你们让我走上了正确的轨道。我升级如下:
Spring 核心(及相关):5.0.0.RELEASE
Spring引导:2.0.0.M4
Spring云:Finchley.M2
有了这些,托管版本将更新如下:
spring-data-commons:2.0.0.RC3(来自发布列车 KAY-RC3)
spring-data-elasticsearch:3.0.0.RC3(来自发布火车 KAY-RC3)
弹性搜索和传输:5.5.2(满足我的 5.x 要求)
我们在父 pom 中为其他子模块管理了 Jackson 的版本,这导致引入了不兼容的版本。我将 Spring 引导项目中的那些版本覆盖到版本 ${jackson.version } 在Spring中定义如下:
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>
我的存储库出现另一个错误,我认为这是我自己造成的数据模型错误。所有类路径错误似乎都消失了。如果我有进一步的发现,我会再次更新。什么比照!
感谢您的提示。
编辑标题的人描述不准确。如最初所述,问题是 "dependency hell"。没有缺少依赖项,而是大量的传递依赖项,所有需要的版本都以神奇的 nonobvious/undocumented 方式进行协调。 – JvmSd121
有没有人成功地让 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>
我曾将 spring-data-elasticsearch(使用 ES 2.x)项目迁移到使用 ES 5.x。
我失去了来源,但我还有罐子here
你们让我走上了正确的轨道。我升级如下:
Spring 核心(及相关):5.0.0.RELEASE Spring引导:2.0.0.M4 Spring云:Finchley.M2
有了这些,托管版本将更新如下:
spring-data-commons:2.0.0.RC3(来自发布列车 KAY-RC3) spring-data-elasticsearch:3.0.0.RC3(来自发布火车 KAY-RC3) 弹性搜索和传输:5.5.2(满足我的 5.x 要求)
我们在父 pom 中为其他子模块管理了 Jackson 的版本,这导致引入了不兼容的版本。我将 Spring 引导项目中的那些版本覆盖到版本 ${jackson.version } 在Spring中定义如下:
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>
我的存储库出现另一个错误,我认为这是我自己造成的数据模型错误。所有类路径错误似乎都消失了。如果我有进一步的发现,我会再次更新。什么比照!
感谢您的提示。
编辑标题的人描述不准确。如最初所述,问题是 "dependency hell"。没有缺少依赖项,而是大量的传递依赖项,所有需要的版本都以神奇的 nonobvious/undocumented 方式进行协调。 – JvmSd121