【发布时间】:2021-12-08 23:47:50
【问题描述】:
我的 build.sbt 看起来像这样:
libraryDependencies ++= Seq(
"org.apache.hadoop" % "hadoop-aws" % sparkVersion % Provided,
"org.apache.spark" %% "spark-core" % sparkVersion % Provided,
"org.apache.spark" %% "spark-sql" % sparkVersion % Provided,
"org.scala-lang" % "scala-library" % scalaVersion.value % Provided
)
从 Intellij 运行我的应用程序时,我收到 NoClassDefFoundError 异常,因为它找不到 spark 库。所以在使用 Intellij 时,我需要:
libraryDependencies ++= Seq(
"org.apache.hadoop" % "hadoop-aws" % sparkVersion,
"org.apache.spark" %% "spark-core" % sparkVersion,
"org.apache.spark" %% "spark-sql" % sparkVersion,
"org.scala-lang" % "scala-library" % scalaVersion.value % Provided
)
但这会导致最终的扁平罐子非常大。
如何根据是否使用 Intellij 获得不同的提供的依赖项列表?
【问题讨论】:
-
stackoverflow.com/a/21803413/1020190 可能会有所帮助。
-
“在 IntelliJ 中运行你的应用程序”是什么意思?单元测试?
-
在我的用例中,这是一个 Spark 作业,旨在在 EMR 下运行,它已经在类路径中提供了这些依赖项。在开发期间,我使用 Intellij 并且缺少这些依赖项。我想要一个 build.sbt 来解决这种情况。
标签: scala intellij-idea sbt-assembly