Scala=)を学び始め、ほぼすべてのチュートリアルでプロジェクト設定を説明するbuild.sbt
ファイルが表示されますが、giter8
をインストールし、テンプレートからプロジェクトを作成しました。また、テンプレートから生成されたプロジェクトはbuild.sbt
ファイルを逃しましたが、build.scala
(同じ目的で使用されているようですが、より柔軟です)を持っています。
build.sbt
と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.scala
は、 sbt 0.13.12 で非推奨になりました。
Build
特性は非推奨となり、.sbt
フォーマット
PR 25 は非推奨を実装します。
" 付録:.scala
ビルド定義 "が更新されました。
いつ .sbt
sはコンパイルされていますが、.scala
ファイルはproject
ディレクトリ内にあります。再帰的なタスクでは使用できません。つまり、たとえばsbt
からsbt
をカスタマイズすることはできません。詳細については、sbtドキュメントの関連セクションを読むことを検討してください。 http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition