我开始学习Scala,几乎在每个教程中我都看到一个build.sbt
描述项目设置的文件.但现在我已经giter8
从模板安装并创建了一个项目.并且从模板遗漏build.sbt
文件生成项目,但它有build.scala
(它似乎用于相同的目的,但它更灵活).
那么build.sbt
和之间的区别是什么build.scala
?
哪个更受欢迎,为什么?
Chr*_*tin 95
举一个简短的例子,这个build.sbt
:
name := "hello"
version := "1.0"
Run Code Online (Sandbox Code Playgroud)
是一种大致相当于此的简写符号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"
)
}
Run Code Online (Sandbox Code Playgroud)
该.sbt
文件还可以包括val
s,lazy val
s和def
s(但不包括object
s和class
es).
请参阅名为".scala build definition"的SBT文档,特别是"将build.sbt与Build.scala相关联"一节.
.scala
如果你正在做一些复杂的事情,你想要Scala的完整表现力,请考虑一个构建定义.
Von*_*onC 30
2016年7月更新(3年后)
Build.scala
在0.13.12中被正式弃用
该
Build
特性已弃用,以支持该.sbt
格式
PR 2530实现了弃用.
" 附录:.scala
构建定义 "已更新.
tkr*_*man 13
在.sbt
编译s时,它们在与目录中的.scala
文件合并之前project
.他们不能在递归任务中使用,也就是说,你不能自定义sbt
从sbt
,例如.有关更多详细信息,请参阅阅读相关部分是sbt文档:http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition