我是 sbt 新手。我有一个非常简单的项目配置如下:
ThisBuild / version := "0.1.0-SNAPSHOT"
ThisBuild / scalaVersion := "2.12.15"
assemblyMergeStrategy in assembly := {
case PathList("META-INF", _*) => MergeStrategy.discard
case _ => MergeStrategy.first
}
lazy val root = (project in file("."))
.settings(
name := "sifi_pipeline"
)
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-core" % "3.3.2" % Provided,
"org.apache.spark" %% "spark-sql" % "3.3.2" % Provided,
"org.apache.spark" %% "spark-streaming" % "3.3.2" % Provided,
"org.apache.spark" %% "spark-sql-kafka-0-10" % "3.3.2",
"com.google.cloud.bigdataoss" % "gcs-connector" % "1.4.3-hadoop2"
)
根据我的理解,提供的范围意味着您确保在类路径中提供此类依赖项,并且不会包含在要生成的 fat jar 中。
这里我有 5 个依赖项,无论我如何配置提供的范围。组装结果尺寸相同。我什至尝试将提供的内容添加到所有这些内容中,但仍然相同。难道是我理解错了?