首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >build.sbt和build.scala有什么区别?

build.sbt和build.scala有什么区别?
EN

Stack Overflow用户
提问于 2013-08-02 00:55:24
回答 3查看 25.7K关注 0票数 107

我开始学习Scala,几乎在每个教程中我都会看到一个描述项目设置的build.sbt文件。但现在我已经安装了giter8并从模板创建了一个项目。和从缺少build.sbt文件的模板生成的项目,但它有build.scala (似乎用于相同的目的,但它更灵活)。

那么build.sbtbuild.scala之间的区别是什么呢

哪一个更受欢迎?为什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-02 15:02:48

举个简单的例子,这个build.sbt

代码语言:javascript
复制
name := "hello"

version := "1.0"

是一种简写表示法,大致相当于此project/Build.scala

代码语言:javascript
复制
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构建定义。

票数 97
EN

Stack Overflow用户

发布于 2016-07-25 19:15:15

更新2016年7月(3年后)

sbt 0.13.12Build.scala已正式弃用

为支持.sbt格式,Build特征受到抨击

PR 2530实现了这一弃用。

"Appendix: .scala build definition“已更新。

票数 32
EN

Stack Overflow用户

发布于 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

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18000103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档