2015-12-17 5 views
1

Я разрабатываю приложение на основе Java, которое производит/потребляет сообщения kafka. В моем помпе у меня есть:Включая kafka maven, чтобы привести к ошибкам конвергенции

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

Я также использую плагин maven enforcer. В eclipse, который, как представляется, не вызывает плагин forcecer, программа строит и работает нормально. Вне затмения, когда я делаю «МВН чистый пакет» Инфорсер бросает ошибку конвергенции:

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, не прибегая к этому. Как правило, вы исключаете переходные зависимости, когда они входят в разные версии из разных зависимостей верхнего уровня. Здесь - у меня проблема с одной и только одной зависимостью верхнего уровня, кафкой.

ответ

0

Конструкция Kafka четко не работает с исполнителем, поэтому мы случайно дважды приводим одну и ту же зависимость с разными версиями.

Мое предложение:

  1. Используйте Исключено, чтобы решить эту проблему в своем проекте
  2. Открыть билет для Apache Кафки (issues.apache.org/jira/browse/KAFKA) и объяснить проблему. Возможно, вы даже можете внести запрос на вывоз, который исправляет проблему (http://kafka.apache.org/contributing.html)