3

ScalaParallelコレクションのベンチマーク用のInputTasksを含む単純なSBTプロジェクトを開発しています。

InputKeysを定義し、問題が発生したときにタスクの作成を開始しました。

私のベンチマークはScala2.10.0-M5build.sbtを必要とするので、私はこれを自分の: でやってみました

name := "scala-parallel-collection-benchmark"

version := "1.0.0"

organization := "com.google.summer"

scalaVersion := "2.10.0-M5"

ただし、コンパイル時に次のエラーが発生します。

[info] Loading project definition from C:\Users\Administrator\scala-parallel-collection-benchmark\project
[info] Compiling 1 Scala source to C:\Users\Administrator\scala-parallel-collection-benchmark\project\target\scala-2.9.1\sbt-0.11.3\classes...
[error] C:\Users\Administrator\scala-parallel-collection-benchmark\project\Build.scala:47: value tasksupport is not a member of scala.collection.parallel.mutable.ParArray[Int]
[error]                 collection.tasksupport = new ForkJoinTaskSupport(new ForkJoinPool(par))
[error]                            ^
[error] one error found
[error] {file:/C:/Users/Administrator/scala-parallel-collection-benchmark/project/}default-e0b2a2/compile:compile: Compilation failed

コンパイルにはまだScala2.9.1を使用しているようです。

Scala 2.10.0-M5を使用してコードをコンパイルするようにSBTを設定するにはどうすればよいですか?

4

3 に答える 3

7

scalaVersion「実際の」ソース コード (通常は にありますsrc/...) をコンパイルするために使用される Scala のバージョンにのみ影響します。project/あなたのエラーは、sbt がビルドされた Scala バージョンで常にコンパイルされるビルド定義 (下) の一部に起因します。

于 2012-08-14T16:49:37.993 に答える
4

プロジェクト定義のコンパイルに使用される Scala のバージョンを変更することはできません。これは、SBT 自体のコンパイルに使用されるバージョンと互換性のあるバージョン バイナリでなければならないためです。この点に関しては、ある程度の柔軟性が検討されていますが、現時点では修正されています。

この設定scalaVersionにより、プロジェクト自体のコンパイルに使用される Scala のバージョンが変更されます。プロジェクトは完全に異なるバージョンでコンパイルできます。実際、SBT でプロジェクトを複数の Scala バージョンでコンパイルすることもできます。

于 2012-08-14T17:25:34.633 に答える
-5

ファイル "project/build.properties" で scala バージョンを変更できます (例: sbt.version=0.11.2)。

于 2012-08-15T05:14:41.780 に答える