一、问题

spring-boot.version 2.2.4.RELEASE,在gulimall-search pom.xml中添加elasticsearch.version 7.4.2后,发现出现如下问题:elasticsearch版本是springboot引入的6.8.6,没有变为7.4.2。

二、原因
在gulimall-search 的pom文件中,spring-boot.version纳入了dependencyManagement,也就是说,不管上面声明elasticsearch什么版本,最后会使用spring-boot引入的6.8.6版本。

三、解决方法
在dependencyManagement中加入elasticsearch的版本管理即可,如下图。

四.结果

上文参考自gulimall-search P125 springboot整合elasticsearch版本冲突-CSDN博客
在实际使用中, 在dependencyManagement加了这2个依赖的版本声明,还提示有一个jar是6.8.4版本,如下图:

我的properties已声明elasticsearch的版本

启动运行后报异常java.lang.NoSuchMethodError: org.elasticsearch.client.Request.addParameters(Ljava/util/Map;)V

上网查了下是elasticsearch和sprinboot版本冲突,后面在在dependencyManagement加了这2个依赖的版本声明的基础上添加下面的依赖版本声明
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-client</artifactId>
<version>7.4.2</version>
</dependency>
即将elasticsearch-rest-client显式指定使用7.4.2版本,再次刷新依赖,原来的6.8.4消失了,换成刚刚显式声明的7.4.2,

再次运行项目不再报上面的异常。