3

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

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

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

4

1 回答 1

3

如果您确定B依赖项将始终存在于运行时,则始终可以将其标记Bprovided.

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

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

于 2013-08-09T16:17:31.790 回答