覆盖Spark的Guava依赖版本

3

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库,但我有些困惑。 - Sai Kiriti Badam
1个回答

2

您正在寻找阴影选项。请参见此处,但基本上您需要添加阴影指令。像这样:

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

如果您更喜欢使用Maven,也可以使用相应的maven-shade-plugin。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接