Maven传递依赖版本降低

我写了一个模块A依赖了 这个 es client 的jar

<!-- Java High Level REST Client -->  

<dependency>

<groupId>org.elasticsearch.client</groupId>

<artifactId>elasticsearch-rest-high-level-client</artifactId>

<version>6.8.0</version>

<exclusions>

<exclusion>

<artifactId>jopt-simple</artifactId>

<groupId>net.sf.jopt-simple</groupId>

</exclusion>

</exclusions>

</dependency>

es client 的jar 又 依赖了 es的其他jar

<dependency>  

<groupId>org.elasticsearch</groupId>

<artifactId>elasticsearch</artifactId>

<version>6.8.0</version>

<scope>compile</scope>

</dependency>

但是 es jar版本在A模块中,降低了变成了 6.4.3。

声明中明明是6.8.0,这是为什么有人知道吗?

回答:

应该是其他的依赖里面引入了6.4.3,可以用如下指令分析一下.

mvn dependency:tree

如果你是IDEA,可以用Maven Helper插件分析。


当发生冲突时候,maven会按照如下方式自动解决冲突:

  1. 优先选择最短路径依赖的版本
  2. 当依赖路径长度相同时,选择先声明的版本

你可以在A模块中声明elasticsearch,使得依赖路径最短。当然,你也可以用exclusions>将6.4.3版本从引入的jar中排除。

<dependency>  

<groupId>org.elasticsearch</groupId>

<artifactId>elasticsearch</artifactId>

<version>6.8.0</version>

<scope>compile</scope>

</dependency>

回答:

我猜你应该是用到了 sping-boot-2.1.x,导致了 es 降版本

https://github.com/spring-pro...
1596109641248.jpg

以上是 Maven传递依赖版本降低 的全部内容, 来源链接: utcz.com/a/167513.html

回到顶部