You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Maven中指定spring-data-elasticsearch依赖版本而非自动更新?

解决Spring Boot中指定spring-data-elasticsearch版本的问题

问题根源

你使用的spring-boot-starter-data-elasticsearch:2.5.7会继承Spring Boot父项目的**依赖管理(Dependency Management)**机制,其中已预定义spring-data-elasticsearch的版本。Maven解析依赖时会优先使用依赖管理中指定的版本,这就是你无法直接通过修改starter依赖切换版本的原因。

解决方案

方法1:通过Spring Boot属性覆盖(推荐)

Spring Boot为常用依赖提供了版本属性,你可以在pom.xml的<properties>节点中直接指定spring-data-elasticsearch版本,这会自动覆盖依赖管理中的配置,同时关联的rest-high-level-client也会跟随该版本(因为spring-data-elasticsearch的依赖版本与其绑定)。

<properties>
    <!-- 指定spring-data-elasticsearch版本 -->
    <spring-data-elasticsearch.version>4.2.7</spring-data-elasticsearch.version>
</properties>

<dependencies>
    <!-- 保留原starter依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        <version>2.5.7</version>
    </dependency>
</dependencies>

方法2:显式声明spring-data-elasticsearch依赖

如果属性覆盖不生效,可直接在<dependencies>中显式声明spring-data-elasticsearch并指定版本,Maven会优先使用显式声明的版本。注意需确保版本与Spring Boot 2.5.7兼容(4.2.x系列适配Spring Boot 2.5.x,4.4.x对应Spring Boot 2.6.x)。

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
        <version>2.5.7</version>
    </dependency>
    <!-- 显式指定spring-data-elasticsearch版本 -->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-elasticsearch</artifactId>
        <version>4.2.7</version>
    </dependency>
</dependencies>

关于rest-high-level-client版本

rest-high-level-client是spring-data-elasticsearch的传递依赖,指定spring-data-elasticsearch版本后,会自动引入对应兼容的客户端版本。若存在其他依赖引入更高版本的rest-high-level-client,可通过以下方式强制指定:

<properties>
    <!-- 直接指定rest-high-level-client版本(spring-data-elasticsearch 4.2.7对应7.17.0) -->
    <elasticsearch.version>7.17.0</elasticsearch.version>
</properties>

验证版本

可通过Maven命令查看最终依赖树,确认版本是否生效:

mvn dependency:tree -Dincludes=org.springframework.data:spring-data-elasticsearch,org.elasticsearch.client:rest-high-level-client

内容的提问来源于stack exchange,提问作者Sandeep Nair

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:40:19