Spring Boot 2.6.8升级Elasticsearch 7.17.2依赖兼容性及配置方法
可行性说明
Spring Boot 2.6.8 升级Elasticsearch到7.17.2完全可行。7.17.2是Elasticsearch 7.x分支的最终LTS稳定版,和Spring Boot 2.6.8默认绑定的7.15.2同属7.x大版本,官方保证同大版本API向下兼容,不存在跨大版本的破坏性变更。
具体操作步骤
- 解决依赖拉取失败问题
你当前配置的Shibboleth仓库仅托管Shibboleth项目自身的发布构件,不包含Elasticsearch的公开发行包,不需要额外新增其他仓库配置,Maven默认中央仓库已经同步了全版本Elasticsearch公开依赖,只要本地Maven的settings.xml没有屏蔽中央仓库,就可以正常拉取对应版本的包。 - 覆盖Spring Boot内置的ES版本配置
Spring Boot父POM通过properties属性统一管理所有第三方依赖的版本,你不需要在单个ES依赖上重复写版本号,直接在项目自身的<properties>节点中覆盖内置的版本属性即可:
<properties> <java.version>17</java.version> <!-- 覆盖Spring Boot默认绑定的Elasticsearch版本 --> <elasticsearch.version>7.17.2</elasticsearch.version> </properties>
注意:不要手动给elasticsearch、elasticsearch-rest-high-level-client两个依赖单独指定version,只要配置上述一个属性,所有Elasticsearch官方组件(核心库、高级REST客户端等)的版本都会被统一替换为7.17.2,从根源避免同组依赖版本不一致的冲突问题。
校验与注意事项
- 配置完成后执行
mvn dependency:tree查看依赖树,确认所有groupId为org.elasticsearch的依赖版本均为7.17.2,如果有其他第三方组件引入了旧版本ES依赖,直接通过<exclusions>标签排除旧版本即可。 - 7.15.2中标记为废弃的方法在7.17.2中全部保留兼容(7.x全系列不会移除废弃API,相关移除操作从8.0版本才开始执行),升级后不需要大面积改造现有代码,后续按需逐步替换为新API即可。
- 后续如果需要引入
spring-boot-starter-data-elasticsearch,不需要额外修改版本配置,上述elasticsearch.version配置会自动生效,Spring Boot 2.6.x对应的Spring Data Elasticsearch 4.3.x版本完全兼容ES 7.17.x,不存在适配问题。
内容的提问来源于stack exchange,提问作者francissoria
相关产品推荐
相关产品推荐

