如果我使用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
项目使用&#34;提供&#34;来声明对核心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服务器代码。我正在编写一个独立运行的Kafka Streams应用程序,并希望使用Avro编码的消息。对于Kafka服务器代码库,此流应用程序不应具有依赖关系,即使提供范围也是如此。