【问题标题】:How to add Java dependencies to Scala projects's sbt file如何将 Java 依赖项添加到 Scala 项目的 sbt 文件
【发布时间】:2015-11-29 18:37:39
【问题描述】:

我有一个使用 Apache NiFi 接收器的 Spark Streaming Scala 项目。这些项目在 Eclipse/Scala IDE 下运行良好,现在我想打包它以进行部署。 当我将其添加为

libraryDependencies += "org.apache.nifi" %% "nifi-spark-receiver" % "0.3.0"

sbt 假定它是一个 Scala 库并尝试解决它。​​

如何将 NiFi 接收器及其所有依赖项添加到项目的 SBT 文件中?

另外,是否可以将依赖项添加到本地目录而不是 sbt 尝试解析?

提前致谢。

这是我的 sbt 文件内容:

name := "NiFi Spark Test"

version := "1.0"

scalaVersion := "2.10.5"

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.5.2" % "provided"
libraryDependencies += "org.apache.nifi" %% "nifi-spark-receiver" % "0.3.0"

【问题讨论】:

  • 你也可以试试maven build link

标签: scala sbt spark-streaming scala-ide apache-nifi


【解决方案1】:

libraryDependencies += "org.apache.nifi" %% "nifi-spark-receiver" % "0.3.0"

双 % 用于将 scala 版本作为后缀添加到 maven 工件。这是必需的,因为不同的 scala 编译器版本会产生不兼容的字节码。如果你想使用 maven 的 java 库,那么你应该使用单个 % 字符

libraryDependencies += "org.apache.nifi" % "nifi-spark-receiver" % "0.3.0"

【讨论】:

  • 谢谢。我做到了,现在得到下面的错误。这是否意味着我需要添加 loj4j 依赖项?另外,是否可以将依赖项添加到本地目录而不是 sbt 尝试解决? [错误] 未加载数据时无法获取工件。 IvyNode = org.slf4j#slf4j-log4j12;1.7.2 java.lang.IllegalStateException:未加载数据时无法获取工件。 IvyNode = org.slf4j#slf4j-log4j12;1.7.2
【解决方案2】:

我还发现我可以将项目依赖的库放入 lib 文件夹中,它们会在组装过程中被拾取。

【讨论】:

    猜你喜欢
    • 2013-05-28
    • 2012-04-22
    • 1970-01-01
    • 2015-03-30
    • 2013-12-06
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    相关资源
    最近更新 更多