簡體   English   中英

build.sbt和build.scala有什么區別?

[英]What is the difference between build.sbt and build.scala?

我開始學習Scala,幾乎在每個教程中我都看到了一個描述項目設置的build.sbt文件。 但是現在我已經安裝了giter8並從模板創建了一個項目。 並且從模板生成的項目錯過了build.sbt文件,但它有build.scala (它似乎用於相同的目的,但它更靈活)。

那么build.sbtbuild.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 s, lazy val s和def s(但不包括object s和class es)。

請參閱名為“.scala構建定義”的SBT文檔 ,特別是“將build.sbt與Build.scala相關聯”一節。

如果你想做一些復雜的事情,你想要一個.scala構建定義,你想要Scala的完整表現力。

2016年7月更新(3年后)

Build.scalasbt 0.13.12中正式棄用

不推薦使用Build特性而使用.sbt格式

PR 2530實現了棄用。
附錄: .scala構建定義 ”已更新。

當編譯.sbt ,它們就是在那種與project目錄中的.scala文件合並之前。 它們不能用於遞歸任務,也就是說,例如,你無法從sbt自定義sbt 有關更多詳細信息,請參閱閱讀相關部分是sbt文檔: http//www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM