使用sbt作用域从已组装的jar中排除依赖项

时间:2016-09-16 10:06:06

标签: scala sbt sbt-assembly

为了部署某些应用程序,您可能需要从已组装的uberjar中排除某些依赖项。在maven中,您可以通过选择provided范围来实现。

sbt的不同之处在于,当您为依赖项选择provided配置时,它还会从run任务的依赖项中删除依赖项。 stackoverflow上已经存在working solution,但我想提出一些更容易理解的东西(至少对我而言)。

基于scopes上的sbt文档,我希望覆盖程序集任务范围的libraryDependencies设置键,如下所示:

lazy val providedDependencies = Seq(
  "org.apache.storm" % "storm-core" % "1.0.2" 
)

lazy val dependencies = Seq(
  "org.apache.storm" % "storm-kafka" % "1.0.2"
)

libraryDependencies in assembly := {
  dependencies ++ providedDependencies.map(_ % Provided)
}

libraryDependencies := (dependencies ++ providedDependencies)

它似乎不起作用,sbt assembly命令将暴风雨的罐装入uberjar。有人能解释一下原因吗?

0 个答案:

没有答案