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

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

그래서 차이 무엇 build.sbtbuild.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의, lazy val의, 그리고 def들 (그러나 objectS와 classES).

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

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


답변

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

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

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

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


답변

.sbts가 컴파일 될 때 디렉토리 .scala내부 의 파일 과 병합되기 전에 project있습니다. 재귀 작업에서는 사용할 수 없습니다 . 즉, 예를 들어 sbt에서 사용자 지정할 수 없습니다 sbt. 자세한 내용은 sbt 설명서를 참조하십시오 . http://www.scala-sbt.org/release/docs/Getting-Started/Basic-Def.html#sbt-vs-scala-definition


답변