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会按照如下方式自动解决冲突:
- 优先选择最短路径依赖的版本
- 当依赖路径长度相同时,选择先声明的版本
你可以在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...
以上是 Maven传递依赖版本降低 的全部内容, 来源链接: utcz.com/a/167513.html