build.sbt와 build.scala의 차이점은 무엇입니까?


107

저는 Scala를 배우기 시작했고 거의 모든 튜토리얼에서 build.sbt프로젝트 설정을 설명 하는 파일을 봅니다 . 하지만 이제는 giter8템플릿에서 프로젝트를 설치 하고 만들었습니다. 템플릿 누락 build.sbt파일 에서 프로젝트를 생성 했지만 build.scala(동일한 목적으로 사용되는 것처럼 보이지만 더 유연합니다).

그래서 차이 무엇 build.sbtbuild.scala?
어느 것이 더 선호되며 그 이유는 무엇입니까?

답변:


95

간단한 예를 들면 다음과 같습니다 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의, lazy val의, 그리고 def들 (그러나 objectS와 classES).

참조 ".scala 빌드 정의"라는 SBT 문서 , "Build.scala에 build.sbt 관련된"특히 섹션을 참조하십시오.

.scalaScala의 완전한 표현력을 원하는 곳에서 복잡한 작업을 수행하는 경우 빌드 정의를 고려하십시오 .


6
"build.sbt가 충분하지 않은 경우는 거의 없습니다."0.12 이전 버전에서는 작업이나 다중 모듈 빌드를 정의하려면 .scala 파일이 필요합니다. 이 문제는 0.13에서 해결되어야하며, 여기서 이제 val 및 여러 프로젝트를 정의 할 수 있습니다. 물론 .scala로 시작할 수 있습니다.
Mark Harrah

1
이 주제에 대한 SBT 문서 - scala-sbt.org/release/tutorial/Full-Def.html
neowulf33

31

2016 년 7 월 업데이트 (3 년 후)

Build.scalasbt 0.13.12 에서 공식적으로 사용되지 않습니다.

Build특성은 찬성되지 않습니다 .sbt형식

PR 2530 은 이러한 지원 중단을 구현합니다.
" 부록 : .scala빌드 정의 "가 업데이트되었습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.