我开始学习Scala,几乎在每个教程中我都会看到一个描述项目设置的build.sbt文件。但现在我已经安装了giter8并从模板创建了一个项目。和从缺少build.sbt文件的模板生成的项目,但它有build.scala (似乎用于相同的目的,但它更灵活)。
那么build.sbt和build.scala之间的区别是什么呢
哪一个更受欢迎?为什么?
发布于 2013-08-02 15:02:48
举个简单的例子,这个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文件还可以包括vals、lazy vals和defs (但不包括objects和classes)。
请参阅the SBT document called ".scala build definition",特别是“将build.sbt与Build.scala联系起来”一节。
如果你想要做一些复杂的事情,而你想要.scala的完整表达能力,可以考虑使用Scala构建定义。
发布于 2016-07-25 19:15:15
更新2016年7月(3年后)
在sbt 0.13.12中Build.scala已正式弃用
为支持
.sbt格式,Build特征受到抨击
PR 2530实现了这一弃用。
"Appendix: .scala build definition“已更新。
发布于 2013-08-02 01:03:45
当编译.sbt时,它们是在与project目录中的.scala文件合并之前的。例如,它们不能在递归任务中使用,也就是说,您不能从sbt自定义sbt。有关更详细的信息,请考虑阅读sbt文档的相关部分:http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition
https://stackoverflow.com/questions/18000103
复制相似问题