build.sbt和build.scala有什么区别?
我开始学习Scala,几乎在每个教程中,我都会看到一个描述项目设置的build.sbt
文件。 但是现在我已经安装了giter8
并从模板创build了一个项目。 而从模板生成的项目错过了build.sbt
文件,但它有build.scala
(似乎用于相同的目的,但它更灵活)。
那么build.sbt
和build.scala
什么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
, lazy val
s和def
s(但不包括object
和class
es)。
请参阅名为“.scala构build定义”的SBT文档 ,特别是“将build.sbt与Build.scala关联”部分。
考虑一个.scala
构build定义,如果你想在Scala的完整performance力的情况下做一些复杂的事情。
2016年7月更新(3年后)
Build.scala
在sbt 0.13.12被正式弃用
Build
特性已被弃用,转而使用.sbt
格式
公关2530实施了弃用。
“ 附录: .scala
构build定义 ”已更新。
当正在编译.sbt
,它们就是在project
目录内的.scala
文件合并之前。 它们不能用于recursion任务,也就是说,例如,你不能从sbt
自定义sbt
。 有关更详细的信息,请考虑阅读相关部分是sbt文档: http : //www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition