使用“spring-boot-starter-parent”时如何在 Maven 中使用较低的 Elastic 搜索版本
Posted
技术标签:
【中文标题】使用“spring-boot-starter-parent”时如何在 Maven 中使用较低的 Elastic 搜索版本【英文标题】:How to use lower Elastic search version in Maven when using "spring-boot-starter-parent" 【发布时间】:2017-11-09 20:39:18 【问题描述】:我正在为 Webflux 使用版本为“2.0.0.BUILD-SNAPSHOT”的“spring-boot-starter-parent”。我使用 Elasticsearch 作为数据源。所以我在 pom.xml 中包含了“spring-boot-starter-data-elasticsearch”。默认情况下,包括 5.4.0 的 ES 版本。但我的 Elasticsearch 版本是 2.3.1。我现在无法升级我的 ES 版本。那么有没有办法将默认包含的 ES 版本(5.4.0)降级到较低版本(2.3.1)。我尝试在 pom.xml 中的“spring-boot-starter-data-elasticsearch”依赖项中指定较低版本,但仍然无法正常工作。我收到“NoNodeAvailalbe 异常”。所以我通过使用 2.3.1 版本的依赖“org.elasticsearch”来降级 ES,但在这种情况下我无法启动我的服务器。
【问题讨论】:
您是否使用 spring-boot-starter-parent 作为 Maven 项目的父级? @AndyWilkinson 是的,我正在使用 spring-boot-starter-parent 【参考方案1】:您可以使用 maven dependencyManagement
标签覆盖 spring-boot-starter-data-elasticsearch
或 org.elasticsearch
版本。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
</dependencyManagement>
请参阅 spring.io Overriding Dependency Versions with Spring Boot 的这篇详细帖子
【讨论】:
没那么简单。 Spring Boot 2.0使用的Spring Data Elasticsearch版本需要Elasticsearch 5以上是关于使用“spring-boot-starter-parent”时如何在 Maven 中使用较低的 Elastic 搜索版本的主要内容,如果未能解决你的问题,请参考以下文章
使用“spring-boot-starter-parent”时如何在 Maven 中使用较低的 Elastic 搜索版本