汇编用2.10包构建包含scala 2.11 jar

时间:2016-10-01 17:33:18

标签: apache-kafka confluent

我下载了confluent-2.0.0-2.10.5.tar.gz,因为我想要scala 2.10包

但/ share / java / schema-registry中的kafka jar仍然是kafka_2.11-0.9.0.0-cp1.jar

无论如何我可以得到一个干净的2.10 scala融合包

1 个答案:

答案 0 :(得分:4)

2.10指的是Kafka子包的版本,但其他子包可以使用不同的版本。

tar.gz包使用2.11版本,其中不同的子包需要访问具有Scala依赖性的核心Kafka jar。 (实际上,他们所依赖的版本实际上是Kafka支持的Scala版本,并且被认为是最稳定且受到良好支持的上游版本)。这是必要的,因为Scala库在不同的Scala版本之间不一定是二进制兼容的,这意味着这样做需要使用Kafka库的所有服务的多个版本,尤其是在平台上像Debian和基于RPM的发行版,即我们需要schema-registry-2.10和schema-registry-2.11。相反,我们将整个Kafka库供应给依赖它的服务。

请注意/ share / java / kafka下的文件只使用Scala 2.10,如果需要引入客户端,可以安全地将其添加到类路径中。将2.10或2.11用于任何其他服务并不重要,因为它们只是:您执行的服务。您可能需要放在类路径上的任何库(例如序列化程序)仅依赖于Kafka中的纯Java库,因此可以安全地与使用任何Scala版本编译的Kafka库一起使用。