SBT 提供的依赖项不排除在程序集中

问题描述 投票:0回答:0

我是 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 个依赖项,无论我如何配置提供的范围。组装结果尺寸相同。我什至尝试将提供的内容添加到所有这些内容中,但仍然相同。难道是我理解错了?

scala sbt
© www.soinside.com 2019 - 2024. All rights reserved.