以下是模块化层的概念图
此图的排列方式是,每一层只依赖于它下面的层。
IO API 是一个用于处理文件和目录的底层 API。
序列化 API 是 Scala Pickling 的一个有见地的包装器。序列化 API 的职责是将值转换为 JSON。
Util API 提供常用功能,如日志记录和 sbt 使用的内部数据类型。
sbt 的库管理系统基于 Apache Ivy,因此围绕库管理系统的概念和术语也受到 Ivy 的影响。库管理 API 的职责是计算传递依赖图,并从给定的存储库下载工件。
Scala 的增量编译如此基础,以至于我们现在很少将它视为 sbt 的一项功能。实际上,有许多子项目/类参与其中,它们实际上是内部细节,我们应该借此机会将它们隐藏起来。
这是对 build.sbt
公开的那个部分。该模块的职责是加载构建文件和插件,并提供一种在状态上执行命令的方式。
这可能仍然保留在 sbt/sbt 中。
sbt 启动器提供了一个通用容器,可以加载和运行使用 Ivy 依赖管理器解析的程序。sbt 使用它作为部署机制,但它也可以用于其他目的。
有关更多详细信息,请参阅 foundweekends/conscript 和 启动器。
目前在 sbt/sbt-remote-control 中开发。sbt 服务器提供了一个基于 JSON 的 API,它包装了命令行体验的功能。
其中一个客户端将是“终端客户端”,它将包含命令行 sbt shell。其他计划中的客户端是 IDE 集成。
该网站的源代码。