【问题标题】:override guava dependency version of spark覆盖spark的番石榴依赖版本
【发布时间】:2017-01-26 15:28:10
【问题描述】:

spark 依赖于旧版本的guava。 我使用sbt assembly 构建我的spark 项目,不包括使用provided 的spark,并包括最新版本的guava

但是,当运行sbt-assembly 时,guava 依赖项也会从 jar 中排除。

我的 build.sbt:

libraryDependencies ++= Seq(
  "org.apache.spark" %% "spark-core" % sparkVersion % "provided",
  "org.apache.spark" %% "spark-sql" % sparkVersion % "provided",
  "org.apache.spark" %% "spark-mllib" % sparkVersion % "provided",
  "com.google.guava" % "guava" % "11.0"
)

如果我删除了% "provided",那么sparkguava 都包括在内。

那么,我怎样才能排除spark 并包括guava

【问题讨论】:

  • 您能否发布您为解决此问题所做的确切更改?我面临着一个类似的问题,我必须遮蔽 jackson-core 库,但我有些困惑。

标签: scala apache-spark sbt


【解决方案1】:

您正在寻找阴影选项。请参阅here,但基本上您需要添加着色说明。像这样的:

assemblyShadeRules in assembly := Seq(
  ShadeRule.rename("com.google.guava.**" -> "my_conf.@1")
    .inLibrary("com.google.guava" % "config" % "11.0")
    .inProject
  )

还有对应的maven-shade-plugin给喜欢maven的人。

【讨论】:

    猜你喜欢
    • 2020-03-10
    • 1970-01-01
    • 2016-03-16
    • 2018-08-15
    • 2017-11-07
    • 1970-01-01
    • 2016-02-19
    • 2014-02-12
    相关资源
    最近更新 更多