1

Kafka メッセージを生成/消費する Java ベースのアプリを開発しています。私のpomには次のものがあります:

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

また、Maven 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プロジェクトを構築できないのは奇妙に思えます。通常、推移的な依存関係が異なるトップレベルの依存関係から異なるバージョンで提供される場合は、推移的な依存関係を除外します。ここで - 私はたった 1 つのトップレベルの依存関係、kafka で問題を抱えています。

4

1 に答える 1

0

Kafka ビルドは明らかにエンフォーサーでは実行されないため、誤って同じ依存関係を異なるバージョンで 2 回プルしてしまいます。

私のおすすめ:

  1. Exclude を使用して、独自のプロジェクトでこれを解決します
  2. Apache Kafka (issues.apache.org/jira/browse/KAFKA) のチケットを開いて、問題を説明してください。おそらく、問題を修正するプル リクエストに貢献することもできます ( http://kafka.apache.org/contributing.html ) 。
于 2015-12-17T03:40:45.467 に答える