包括kafka maven必然会导致收敛错误
Including kafka maven bound to result in convergence errors
我正在开发一个基于 java 的应用程序,其中包含 produces/consumes kafka 消息。在我的 pom 中我有:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.9.2</artifactId>
<version>0.8.2.2</version>
</dependency>
我也在使用 Maven enforcer 插件。
在似乎没有调用 enforcer 插件的 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 的问题。
Kafka build 显然 运行 没有强制执行器,所以我们不小心用不同的版本引入了相同的依赖项。
我的建议:
- 在您自己的项目中使用 Exclude 解决这个问题
- 给Apache Kafka(issues.apache.org/jira/browse/KAFKA)开工单,说明问题。也许您甚至可以贡献一个解决问题的拉取请求 (http://kafka.apache.org/contributing.html)
我正在开发一个基于 java 的应用程序,其中包含 produces/consumes kafka 消息。在我的 pom 中我有:
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka_2.9.2</artifactId>
<version>0.8.2.2</version>
</dependency>
我也在使用 Maven enforcer 插件。 在似乎没有调用 enforcer 插件的 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 的问题。
Kafka build 显然 运行 没有强制执行器,所以我们不小心用不同的版本引入了相同的依赖项。
我的建议:
- 在您自己的项目中使用 Exclude 解决这个问题
- 给Apache Kafka(issues.apache.org/jira/browse/KAFKA)开工单,说明问题。也许您甚至可以贡献一个解决问题的拉取请求 (http://kafka.apache.org/contributing.html)