仅将特定依赖项添加到SBT打包的jar文件中

时间:2013-08-09 15:12:53

标签: scala sbt

我正在写一个小型Scala库。我的库依赖于另外两个 - 让我们称它们为A和B.我想在我的程序集的jar文件中包含A,但不包括B,因为1)客户端代码将始终依赖于B,因此它将始终存在,2)B是一个非常大的组件。

使用sbt assembly构建会创建一个包含所有依赖项的胖jar。使用sbt package进行构建会创建一个只有我的库中的类的瘦小的jar,仅此而已。我想要某种包含我的类的半脱脂jar,只需要依赖A的罐子。

我已经查看了对Build.scala文件的潜在修改或添加,以使SBT在构建jar时只包含一个特定的依赖项,但我还没有找到任何可以做的事情。我不确定这是可能的。任何帮助或指导都将非常感激。

1 个答案:

答案 0 :(得分:3)

如果您确定B依赖项在运行时始终存在,则始终可以将B标记为provided

libraryDependencies += "com.youcompany" %% "b-library" % "1.0" % "provided"

这意味着它将包含在编译依赖项中,但将在运行时以其他方式提供,因此无需打包它。