web-dev-qa-db-ja.com

Def.inputTaskマクロがScala 2.11.1で機能しないのはなぜですか?

私はScala 2.11.1とsbt0.13.5を使用しています。

次のように入力タスクを作成するヘルパー関数を含むsbtプラグインがあります(問題とは無関係であるため、実装は削除されています)。

def register(name: String, description: String): Def.Setting[InputTask[Unit]] = {
    InputKey[Unit](name, description) <<= Def.inputTask { 
        println("test")
    }
}

この関数はコンパイルされ、Scala 2.10.4で問題なく動作しますが、2.11.1に切り替えると、次のエラーで失敗します。

以前のバージョンのScalaでコンパイルされたマクロを展開できません

それは Def.inputTaskマクロは単にScala 2.11.1で壊れていますか、それともいくつかの明白な詳細が欠けていますか?

現在、上記の関数は、考えられる最も単純なsbtプラグインにあります。依存関係もまったくありません。

25
Michael Zajac

sbt0.13.xシリーズはロード時にScala 2.10.xを使用するため、sbt0.13.x自体をScala 2.10に対してコンパイルする必要があります。 0.13.x用のsbtプラグイン。

:sbt0.13は2.11.xを使用してScalaプロジェクトを定義できます。

31
Eugene Yokota

scala 2.11.xを実行している場合は、build.sbtファイルでこの行を使用してください。

libraryDependencies + = "org.scalatest"% "scalatest_2.11"% "2.2.4"% "test"

16
Rodrigo Dias