我正在开发一个基于 java 的应用程序,它产生/使用 kafka 消息。在我的 pom 中,我有:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.9.2</artifactId>
<version>0.8.2.2</version>
</dependency>
我也在使用一个 Maven 强制插件。在 Eclipse 中,它似乎没有调用强制插件,程序构建并运行良好。在 Eclipse 之外,当我执行“mvn clean package”时,执行器会引发收敛错误:
Dependency convergence error for org.apache.zookeeper:zookeeper:3.4.6 paths to dependency are:
+-com.mystuff:1.0
+-org.apache.kafka:kafka_2.9.2:0.8.2.2
+-org.apache.zookeeper:zookeeper:3.4.6
and
+-com.mystuff:1.0
+-org.apache.kafka:kafka_2.9.2:0.8.2.2
+-com.101tec:zkclient:0.3
+-org.apache.zookeeper:zookeeper:3.3.1
处理此问题的推荐方法是什么?如果当然,我可以排除传递 zookeeper 依赖项并显式添加它,但似乎很奇怪,如果不诉诸于此,我将无法构建 kafka 项目。通常,当传递依赖项来自不同的顶级依赖项的不同版本时,您会排除它们。在这里 - 我遇到了一个且只有一个顶级依赖项 kafka 的问题。