Build.sbt ve build.scala arasındaki fark nedir?


107

Scala öğrenmeye başladım ve hemen hemen her öğreticide build.sbtproje ayarlarını açıklayan bir dosya görüyorum . Ama şimdi giter8şablondan bir proje kurdum ve oluşturdum. Ve şablondan oluşturulan proje eksik build.sbtdosyaya sahip, ancak var build.scala(aynı amaçlarla kullanılmış gibi görünüyor, ancak daha esnektir).

Peki build.sbtve arasındaki fark build.scalanedir?
Hangisi daha çok tercih edilir ve neden?

Yanıtlar:


95

Kısa bir örnek vermek gerekirse, bu build.sbt:

name := "hello"

version := "1.0"

kabaca buna eşdeğer bir kısaltmadır 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"      
  )
}

.sbtDosyası da içerebilir vals, lazy vals ve defs (ancak objects ve classes).

Bkz ".scala inşa tanımı" denilen SBT belgesi , 'Build.scala için build.sbt İlişkin' özellikle bölüm.

.scalaScala'nın tam ifadesini istediğiniz yerde karmaşık bir şey yapıyorsanız, bir yapı tanımı düşünün .


6
"Build.sbt 'de nadiren yeterli olur", 0.12 ve önceki sürümlerde görevleri veya çoklu modül yapılarını tanımlamak istediğinizde .scala dosyalarına ihtiyacınız olduğu doğrudur. Bu, artık vals ve birden çok proje tanımlayabileceğiniz 0.13'te ele alınmalıdır. Yine de .scala ile başlayabilirsiniz.
Mark Harrah

1
Bu konuyla ilgili SBT belgeleri - scala-sbt.org/release/tutorial/Full-Def.html
neowulf33


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.