spark
取决于guava
的旧版本。
我用spark
构建我的sbt assembly
项目,不包括使用provided
的spark,还包括最新版本的guava
。
但是,运行sbt-assembly
时,jar中也排除了guava
依赖项。
我的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"
,则同时包括spark
和guava
。那么,如何排除
spark
并包含guava
? 最佳答案
您正在寻找底纹选项。请参见here,但基本上您需要添加着色说明。像这样:
assemblyShadeRules in assembly := Seq(
ShadeRule.rename("com.google.guava.**" -> "my_conf.@1")
.inLibrary("com.google.guava" % "config" % "11.0")
.inProject
)
对于喜欢maven的人,也有相应的maven-shade-plugin。
关于scala - 覆盖Spark的 Guava 依赖版本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41860121/