108

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

build.sbtとはどう違いbuild.scalaますか?
どちらがより好ましいですか、またその理由は何ですか?

4

3 に答える 3

97

簡単な例を挙げると、次のようになります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ファイルには、vals、lazy vals、およびdefs を含めることもできます (ただし、objects およびclasses を含めることはできません) 。

「.scala build definition」と呼ばれる SBT ドキュメント、特に「Relating build.sbt to Build.scala」セクションを参照してください。

.scalaScala の完全な表現力が必要な複雑な処理を行う場合は、ビルド定義を検討してください。

于 2013-08-02T07:02:47.687 に答える
13

sがコンパイルされているとき、それらはディレクトリ内のファイル.sbtとマージされる前です。これらは再帰的なタスクでは使用できません。つまり、たとえばからカスタマイズすることはできません。より詳細な情報については、sbt ドキュメントの関連セクションを読むことを検討してください: http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition.scalaprojectsbtsbt

于 2013-08-01T17:03:45.137 に答える