我正在写一个小型Scala库。我的库依赖于另外两个 - 让我们称它们为A和B.我想在我的程序集的jar文件中包含A,但不包括B,因为1)客户端代码将始终依赖于B,因此它将始终存在,2)B是一个非常大的组件。
使用sbt assembly
构建会创建一个包含所有依赖项的胖jar。使用sbt package
进行构建会创建一个只有我的库中的类的瘦小的jar,仅此而已。我想要某种包含我的类的半脱脂jar,只需要依赖A的罐子。
我已经查看了对Build.scala
文件的潜在修改或添加,以使SBT在构建jar时只包含一个特定的依赖项,但我还没有找到任何可以做的事情。我不确定这是可能的。任何帮助或指导都将非常感激。
答案 0 :(得分:3)
如果您确定B
依赖项在运行时始终存在,则始终可以将B
标记为provided
。
libraryDependencies += "com.youcompany" %% "b-library" % "1.0" % "provided"
这意味着它将包含在编译依赖项中,但将在运行时以其他方式提供,因此无需打包它。