maven必然导致收敛误差

368yc8dk  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(417)

我正在开发一个基于java的应用程序,它可以生成/使用kafka消息。在我的pom中,我有:

<dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.9.2</artifactId>
        <version>0.8.2.2</version>
    </dependency>

我还使用了maven enforcer插件。在eclipse中,似乎没有调用enforcer插件,程序构建和运行良好。在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。

hsgswve4

hsgswve41#

Kafka构建显然不能与执行器一起运行,因此我们意外地使用不同的版本两次拉入相同的依赖项。
我的建议是:
在您自己的项目中使用exclude来解决此问题
打开ApacheKafka的问题(issues.apache.org/jira/browse/kafka)并解释问题。也许您甚至可以提交一个pull请求来修复这个问题(http://kafka.apache.org/contributing.html)

相关问题