2013-08-01 4 views
99

私はScalaを学び始めました。ほぼすべてのチュートリアルで、私はbuild.sbtファイルを参照してプロジェクト設定を記述しています。しかし、今私はgiter8をインストールし、テンプレートからプロジェクトを作成しました。そしてテンプレートから生成されたプロジェクトは、build.sbtファイルが見つかりませんでしたが、build.scala(同じ目的で使用されているようですが、より柔軟です)。build.sbtとbuild.scalaの違いは何ですか?

build.sbtbuild.scalaの違いは何ですか?
どちらがより好ましく、なぜですか?

答えて

90

簡単な例を与えるために、この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"  
) 
} 

vals、lazy vals、およびdefs(ただし、objectsおよびは含まない))。

the SBT document called ".scala build definition"を参照してください。特に、「build.sbtをBuild.scalaに関連付ける」のセクションを参照してください。

Scalaの完全な表現力を必要とする複雑な作業を行う場合は、.scalaのビルド定義を検討してください。

+5

"build.sbtで十分であることはめったにありません"、0.12以前では、タスクまたはマルチモジュールビルドを定義した後は.scalaファイルが必要です。これは、0.13で扱われるべきです。ここで、valと複数のプロジェクトを定義できます。あなたはもちろん、.scalaで始めることができます。 –

+1

このトピックに関するSBTのドキュメント - http://www.scala-sbt.org/release/tutorial/Full-Def.html – neowulf33

関連する問題