如何制作一个scala库?

Nor*_*sul 5 scala static-libraries

我不是一个非常有经验的程序员,并且对scala还是很陌生。我处于一种必须编写供他人使用的库的情况下。我无法访问正在为此工作的人员的存储库,因此我不能简单地为他们编写一个类-它必须是库类型的东西,他们在构建自己的代码时可以将其包括在内。如何实现这一目标?我应该从我的源代码构建一个.jar,然后他们将能够以某种方式包括它。或者,除了直接向他们提供源代码之外,没有其他方法吗?

yǝs*_*ǝla 5

如果使用的是SBT,则可以使用publishcommand。请参阅此处的文档。

有2个选项:

  1. publish 发布到远程存储库

  2. publishLocal 发布到您的文件系统。

如果您需要更复杂的发布过程,请在sbt-release 此处查看

您可以在互联网上找到很多示例,但要仔细检查它们的年龄。SBT对这些功能进行了很多改进,因此如今发布起来要容易得多。


0__*_*0__ 3

Aleksey 的答案的发布方法意味着他们可以通过 Maven 或 Ivy 链接到您的库(例如,他们还使用 sbt 或 Maven 等构建工具)。这样做的优点是他们的构建系统可以自动处理传递依赖关系。这可能是最好的方法。

当然,也始终存在构建 jar 的老式方法,它们将其作为手动依赖项包含在内。sbt package将为您提供一个普通的库 jar,不包括您自己的依赖项或 scala 库(如果需要这些库,他们还必须添加各自的 jar)。

最后,使用sbt-assemble之类的东西,您可以构建一个胖罐子,其中也包含您的库的依赖项。缺点可能是您必须确保它们不依赖于相同类型的库,因为它们不是以这种方式自动管理的。