1. 模块概述

模块概述 

以下是模块化层的概念图

Module diagram

此图的排列方式是,每一层只依赖于它下面的层。

IO API (sbt/io) 

IO API 是一个用于处理文件和目录的底层 API。

序列化 API (sbt/serialization) 

序列化 API 是 Scala Pickling 的一个有见地的包装器。序列化 API 的职责是将值转换为 JSON。

Util API (sbt/util) 

Util API 提供常用功能,如日志记录和 sbt 使用的内部数据类型。

库管理 API (sbt/librarymanagement) 

sbt 的库管理系统基于 Apache Ivy,因此围绕库管理系统的概念和术语也受到 Ivy 的影响。库管理 API 的职责是计算传递依赖图,并从给定的存储库下载工件。

增量编译器 API (sbt/zinc) 

Scala 的增量编译如此基础,以至于我们现在很少将它视为 sbt 的一项功能。实际上,有许多子项目/类参与其中,它们实际上是内部细节,我们应该借此机会将它们隐藏起来。

构建 API (待定) 

这是对 build.sbt 公开的那个部分。该模块的职责是加载构建文件和插件,并提供一种在状态上执行命令的方式。

这可能仍然保留在 sbt/sbt 中。

sbt 启动器 (sbt/launcher) 

sbt 启动器提供了一个通用容器,可以加载和运行使用 Ivy 依赖管理器解析的程序。sbt 使用它作为部署机制,但它也可以用于其他目的。

有关更多详细信息,请参阅 foundweekends/conscript启动器

客户端/服务器 (待定) 

目前在 sbt/sbt-remote-control 中开发。sbt 服务器提供了一个基于 JSON 的 API,它包装了命令行体验的功能。

其中一个客户端将是“终端客户端”,它将包含命令行 sbt shell。其他计划中的客户端是 IDE 集成。

网站 (sbt/website) 

该网站的源代码。