编写可选地依赖于第三方库的库

时间:2015-01-16 23:52:38

标签: scala maven sbt

我想创建一个Scala库(A)来提供一些通用实用程序。库A没有第三部分依赖项。我还希望包含一些依赖于A和某些第三方库C的功能B.考虑B为C提供一些额外的实用程序,基于A.

使用B打包和构建A的最佳策略是什么?我假设大多数用户不需要B,所以他们不需要知道或安装库C.如果我不将C作为依赖添加到A + B,它就不会编译。

我可以把B变成一个依赖于A和C的独立项目。但有没有办法让它成为一个"插件"到B,所以我不需要另外一个项目?

1 个答案:

答案 0 :(得分:4)

不是真的。有一些可怕的hacky方法,如多个maven工件或OSGi包装的大黑坑,但用户不会感谢你做这些事情;让B成为依赖A和C的独立工件是迄今为止用户最友好的方法。请记住,在SBT中使用maven multi-module project或类似支持,您可以在同一代码库中拥有多个已发布和版本化的模块。