私はSBT1.xでscalaプロジェクト(scala 2.11で書かれています)を構築しています。私を困惑させたいくつかの「scalaのバージョン」があります。
SBT 1.x => scala 2.12
SBT plugin => scala 2.x
My project => scala 2.11
それらの違いや関係を理解するのを手伝ってください。また、プロジェクトをコンパイルまたは実行するときに、SBTがそれらをどのように区別するのですか?
sbt自体とそのプラグインで使用されるScalaバージョンは、プロジェクトでコードをコンパイルするために使用されるScalaバージョンから完全に独立しています。sbtバージョンは、使用するScalaバージョンを決定します。
このバージョンはproject/build.properties
、次のように設定できます。
sbt.version = 1.1.1
使用するsbtプラグインは、指定されたバージョンのsbtと互換性がある必要があります(多くは0.13と1.xの両方でクロスコンパイルされています)。
プロジェクトのコードに使用するScalaのバージョンをscalaVersion
設定するには、build.sbt
次の設定を使用します。
scalaVersion := "2.12.4"
繰り返しますが、これはsbtのバージョンから独立しています。いくつかのScalaバージョン用にコードをクロスコンパイルすることもできます。
scalaVersion := "2.12.4"
crossScalaVersions := Seq("2.11.12", "2.12.4")
次にcompile
、sbtで実行すると、Scala 2.12.4が使用され、を実行+compile
すると、最初にScala 2.11.12でコンパイルされ、次に2.12.4でコンパイルされます。クロスビルディングの詳細については、sbtのドキュメントを参照してください。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加