如果我使用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
project使用“提供的”作用域声明对核心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流应用程序,它可以独立运行,并且希望使用avro编码的消息。此streams应用程序不应该对kafka服务器代码库有依赖关系,即使提供了作用域也是如此。
暂无答案!
目前还没有任何答案,快来回答吧!