web-dev-qa-db-ja.com

sbtはどのScalaバージョンを使用するかをどのように選択しますか?

Sbtビルドに複数のプロジェクトがあります。 Scala 2.9.1から2.10にアップグレードしようとしているので、build.sbtファイルに入れました

scalaVersion := "2.10.0"

Sbtのトップレベルプロジェクトで次のようになるため、これは機能しているように見えました。

> scala-version
[info] 2.10.0  

ただし、他のプロジェクトの1つに切り替えると、次のようになります。

> project web-client
[info] Set current project to web-client (in build file:/C:/Users/...
[web-client] $ scala-version
[info] 2.9.1  

バージョンが2.9.1に戻ったことがわかります。同じScalaバージョンをすべてのプロジェクトで使用するように強制するにはどうすればよいですか?

18
Mark

ScalaVersionをThisBuildにスコープすると、すべてのサブプロジェクトに設定されることがわかりました。詳細はここにあります: http://www.scala-sbt.org/release/docs/Getting-Started/Multi-Project.html 下部にありますが、ここにそれが言っていることです:

一度だけ設定するには、メインのbuild.sbtファイルに次の行を書き込むだけで十分です。

scalaVersion in ThisBuild := "2.10.0"
22
Mark

SBTにはデフォルトのScalaバージョンがあります。変更する場合は、すべてのサブプロジェクトにscalaVersion設定を追加する必要があります。これを行う最も一般的な方法は、「共通」を使用することです。 project/Build.scalaを介してルートレベルですべてのプロジェクトに追加される「設定」値。

6