使用“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-elasticsearchorg.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 搜索版本的主要内容,如果未能解决你的问题,请参考以下文章

maven的pom.xml文件报错问题

使用“spring-boot-starter-parent”时如何在 Maven 中使用较低的 Elastic 搜索版本

测试使用

第一篇 用于测试使用

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇