我写了一个模块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
,可以用如下指令分析一下.如果你是IDEA,可以用Maven Helper插件分析。
当发生冲突时候,maven会按照如下方式自动解决冲突:
你可以在A模块中声明
elasticsearch
,使得依赖路径最短。当然,你也可以用exclusions>
将6.4.3版本从引入的jar中排除。