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

Spring Boot Gradle插件中切换Spring Data发布列车的正确方法

解决Spring Boot中适配Elasticsearch 6.8的依赖版本覆盖问题

你遇到的核心问题是Spring Boot自带的spring-boot-dependencies BOM优先级高于你导入的Spring Data发布列车BOM——哪怕你已经成功切换了Spring Data Elasticsearch的版本,底层的Elasticsearch核心库和客户端版本还是会被Spring Boot的默认配置强制锁定为7.6.2。下面是具体的解决步骤:

1. 显式覆盖Elasticsearch相关依赖版本

在你的dependencyManagement块中,除了导入Spring Data的Moore-SR11列车BOM,还需要手动声明Elasticsearch核心及客户端的版本,以此覆盖Spring Boot的默认值。因为Spring Data Elasticsearch 3.2.11(Moore-SR11对应的版本)兼容Elasticsearch 6.8.x,我们可以指定为6.8.13(和你之前看到的Spring Data Elasticsearch依赖的版本保持一致):

plugins {
    id 'org.springframework.boot' version '2.3.5.RELEASE'
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

dependencyManagement {
    imports {
        mavenBom 'org.springframework.data:spring-data-releasetrain:Moore-SR11'
    }
    dependencies {
        // 覆盖Elasticsearch核心及客户端版本,确保和Spring Data Elasticsearch兼容
        dependency 'org.elasticsearch:elasticsearch:6.8.13'
        dependency 'org.elasticsearch.client:elasticsearch-rest-high-level-client:6.8.13'
        dependency 'org.elasticsearch.client:elasticsearch-rest-client:6.8.13'
        dependency 'org.elasticsearch.plugin:transport-netty4-client:6.8.13'
    }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch'
}

2. 验证依赖版本

修改完成后,运行gradle dependencies命令,检查Elasticsearch相关依赖的版本是否已经切换为6.8.13。你应该会看到类似这样的输出片段:

+--- org.springframework.boot:spring-boot-starter-data-elasticsearch -> 2.3.5.RELEASE
| +--- org.springframework.boot:spring-boot-starter:2.3.5.RELEASE (*)
| \--- org.springframework.data:spring-data-elasticsearch:4.0.5.RELEASE -> 3.2.11.RELEASE
| +--- org.springframework:spring-context:5.2.10.RELEASE (*)
| +--- org.springframework:spring-tx:5.2.10.RELEASE (*)
| +--- org.springframework.data:spring-data-commons:2.2.11.RELEASE
| | +--- org.springframework:spring-core:5.2.10.RELEASE (*)
| | +--- org.springframework:spring-beans:5.2.10.RELEASE (*)
| | \--- org.slf4j:slf4j-api:1.7.26 -> 1.7.30
| +--- joda-time:joda-time:2.10.8
| +--- org.elasticsearch.plugin:transport-netty4-client:6.8.13
| | +--- io.netty:netty-buffer:4.1.43.Final -> 4.1.53.Final
| | +--- io.netty:netty-codec:4.1.43.Final -> 4.1.53.Final
| | +--- io.netty:netty-codec-http:4.1.43.Final -> 4.1.53.Final
| | +--- io.netty:netty-common:4.1.43.Final -> 4.1.53.Final
| | +--- io.netty:netty-handler:4.1.43.Final -> 4.1.53.Final
| | +--- io.netty:netty-resolver:4.1.43.Final -> 4.1.53.Final
| | \--- io.netty:netty-transport:4.1.43.Final -> 4.1.53.Final
| +--- org.elasticsearch.client:elasticsearch-rest-high-level-client:6.8.13
| | +--- org.elasticsearch:elasticsearch:6.8.13

补充说明

虽然Spring Boot 2.3.x默认搭配的是Spring Data Neumann列车(对应Spring Data Elasticsearch 4.x),但你通过导入Moore列车BOM降级Spring Data Elasticsearch版本的操作是可行的。不过需要注意两点:

  • 如果后续遇到Spring框架版本冲突的问题,可以考虑将Spring Boot版本调整到2.2.x系列——这是Moore列车官方推荐的兼容Spring Boot版本范围。
  • 所有Elasticsearch相关依赖的版本必须保持一致,避免出现跨版本兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:07:38