我开始学习 Scala,几乎在每个教程中我都会看到一个build.sbt
描述项目设置的文件。但现在我已经giter8
从模板安装并创建了一个项目。并从模板丢失build.sbt
文件生成项目,但它有build.scala
(似乎用于相同目的,但更灵活)。
那么build.sbt
和 和有什么不一样build.scala
?
哪个更受欢迎,为什么?
举一个简单的例子,这个build.sbt
:
name := "hello"
version := "1.0"
是一个大致相当于这个的简写符号project/Build.scala
:
import sbt._
import Keys._
object Build extends Build {
lazy val root = Project(id = "root", base = file(".")).settings(
name := "hello",
version := "1.0"
)
}
该.sbt
文件还可以包括val
s、lazy val
s 和def
s(但不包括object
s 和class
es)。
请参阅名为“.scala build definition”的 SBT 文档,特别是“将 build.sbt 与 Build.scala 关联”部分。
.scala
如果您正在做一些复杂的事情,而您想要 Scala 的完整表现力,请考虑构建定义。
2016 年 7 月更新(3 年后)
Build.scala
在sbt 0.13.12中正式弃用
不推荐使用该
Build
特征以支持.sbt
格式
PR 2530实现了该弃用。
“附录:.scala
构建定义”已更新。
当.sbt
s 被编译时,它们在与.scala
目录内的文件合并之前project
。它们不能在递归任务中使用,也就是说,您不能自定义sbt
from sbt
,例如。有关更多详细信息,请考虑阅读相关部分是 sbt 文档:http ://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition