sbt: 核心概念
- Scala 基础。不可否认,熟悉 Scala 语法非常有帮助。Programming in Scala,Scala 的作者写的非常好的介绍。
- .sbt 构建定义
- 你的构建定义是一个大的
Setting
对象列表,sbt 使用Setting
转换之后的键值对执行 task。 - 为了创建
Setting
,在一个 key 上调用其中的一个方法::=
,+=
或者++=
。 - 没有可变的状态,至于转换;例如,一个
Setting
将 sbt 的键值对集合转换成一个新的集合。不会就地改变任何代码。 - 每一个设置都有一个特定类型的值,由 key 决定。
- tasks 是特殊的设置,通过 key 产生 value 的计算在每次出发 task 的时候都会重新执行。Non-task 计算只会在构建定义的第一次加载时执行。
- Scopes
- 每一个 key 都可能有多个 value,按照 scope 划分。
- scope 会用三个轴:configuration,project,task。
- scope 允许你按项目、按 task、按 configuration 有不同的行为。
- 一个 configuration 是一种类型的构建,例如
Compile
或者Test
。 - project 轴也支持 “构建全局” scope。
- scopes 回滚或 代理 到更通用的 scope。
- 将大部分配置放在
build.sbt
中,但是用.scala
构建定义文件定义类和更大的 task 实现。 - 构建定义是一个 sbt 项目,来自于项目目录。
- 插件是对构建定义的扩展
- 通过在
addSbtPlugin
方法在project/plugins.sbt
中添加插件。(不是在项目基目录下的build.sbt
中)。