我正在尝试启动一个新的 SBT Scala 项目并在 build.sbt 文件中包含以下内容:

name := "ScalaKafkaStreamsDemo" 
version := "1.0" 
scalaVersion := "2.12.1" 
 
libraryDependencies += "javax.ws.rs" % "javax.ws.rs-api" % "2.1" artifacts(Artifact("javax.ws.rs-api", "jar", "jar")) 
 
libraryDependencies += "org.apache.kafka" %% "kafka" % "2.0.0" 
libraryDependencies += "org.apache.kafka" % "kafka-streams" % "2.0.0" 

所以根据GitHub repo ,在 2.0.0 中,我应该看到我想使用的 Scala 类/函数等,但是它们似乎不可用。在 IntelliJ 中,我可以打开 kafka-streams-2.0.0.jar,但我没有看到任何 Scala 类。

我需要包含另一个 JAR 吗?

就在我们讨论额外 JAR 的问题时,有谁知道我需要包含什么 JAR 才能使用 EmbeddedKafkaCluster

请您参考如下方法:

你需要的神器是kafka-streams-scala:

libraryDependencies += "org.apache.kafka" %% "kafka-streams-scala" % "2.0.1" 

(请使用 2.0.1,或者更好的 2.1.0,因为 2.0.0 有一些 scala API 错误)

要回答你的后一个问题,它在测试 jar 中,你可以使用分类器来解决:

libraryDependencies += "org.apache.kafka" %% "kafka-streams" % "2.0.1" % "test" classifier "test" 

但请注意,这是一个内部类,如有更改(或删除),恕不另行通知。如果可能的话,强烈建议您改用测试实用程序中的 TopologyTestDriver:

libraryDependencies += "org.apache.kafka" %% "kafka-streams-test-utils" % "2.0.1" % "test" 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!