对象工具不是包 scala 的成员

object tools is not a member of package scala

在我的 spark 应用程序中,我正在尝试使用 fluentd-scala-logger,为此我必须在我的 build.sbt 中包含一个额外的依赖项 这些是我在 build.sbt:

中添加的 2 行
resolvers += "Apache Maven Central Repository" at "https://repo.maven.apache.org/maven2/"
"org.fluentd" %% "fluent-logger-scala" % "0.7.0"

我的最终 build.sbt 看起来像这样:

name := "sample"
version := "1.4"
scalaVersion := "2.11.8"
resolvers += "Apache Maven Central Repository" at "https://repo.maven.apache.org/maven2/"
libraryDependencies ++= Seq("org.elasticsearch" %% "elasticsearch-spark" % "2.1.2", "org.apache.spark" %% "spark-sql" % "2.1.2", "org.apache.kafka" % "kafka-clients" % "2.4.1", "org.fluentd" %% "fluent-logger-scala" % "0.7.0")

一旦我执行 sbt 打包以将我的 spark 应用程序捆绑在一个 jar 中,我就会遇到以下问题:

object tools is not a member of package scala
[error] import scala.tools.nsc.io.File

当我的 sbt 之前看起来像这样(没有流利的依赖)时,我没有遇到这个问题:

name := "sample"
version := "1.4"
scalaVersion := "2.11.8"
libraryDependencies ++= Seq("org.elasticsearch" %% "elasticsearch-spark" % "2.1.2", "org.apache.spark" %% "spark-sql" % "2.1.2", "org.apache.kafka" % "kafka-clients" % "2.4.1")

解析器线路是否导致了问题?还是我完全错过了其他东西。 我正在使用 sbt 版本 1.4.5 & Scala 版本:2.11.8

我不确定是什么原因造成的,但我找到了解决办法。请尝试像这样添加依赖项:

libraryDependencies += "org.fluentd" %% "fluent-logger-scala" % "0.7.0" intransitive()

它将导入此依赖项而不包含其依赖项。

话虽如此,我查看了 this library dependencies,并试图将它们一一排除:

libraryDependencies += "org.fluentd" %% "fluent-logger-scala" % "0.7.0" excludeAll(
  ExclusionRule("org.msgpack", "msgpack"),
  ExclusionRule("org.slf4j", "slf4j-api"),
  ExclusionRule("ch.qos.logback", "logback-classic"),
  ExclusionRule("junit", "junit"),
  )

但是没用。所以我真的无法解释。