3

如果我使用 Maven 依赖项(SBT 格式):

"io.confluent" % "kafka-avro-serializer" % "3.1.1"

我总是会收到警告:

[warn] Class kafka.utils.VerifiableProperties not found - continuing with a stub.

如果我编写调用的代码AbstractKafkaAvroDeserializer::deserializerConfig(Map<String, ?> props),我会得到一个编译器错误,因为这是重载的AbstractKafkaAvroDeserializer::deserializerConfig(VerifiableProperties props),即使我没有使用第二个变体,我还是会得到编译错误。

kafka-avro-serializer项目在“提供”范围内声明了对核心 Kafka 服务器库的 Maven 依赖项:

    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_${kafka.scala.version}</artifactId>
        <version>${kafka.version}</version>
        <scope>provided</scope>
    </dependency>

我可以通过添加 Maven 依赖项(SBT 表示法)来修复编译问题,包括警告和错误:

  "org.apache.kafka" %% "kafka" % "0.10.1.1" % "provided",

这似乎是kafka-avro-serializer项目中的一个错误。该项目不应该依赖于 Kafka 服务器代码,即使提供了范围。我正在编写一个独立运行并希望使用 Avro 编码消息的 Kafka Streams 应用程序。即使在提供的范围内,此流应用程序也不应该对 Kafka 服务器代码库有依赖关系。

4

0 回答 0