为什么Def.inputTask宏在Scala 2.11.1中不起作用?

Mic*_*jac 25 scala sbt scala-2.11

我正在使用Scala 2.11.1和sbt 0.13.5.

我有一个sbt插件,其中包含一个帮助函数来创建输入任务,如下所示(实现被删除,因为它与问题无关):

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

此函数在Scala 2.10.4中编译并正常工作,但是一旦切换到2.11.1,它就会失败并出现以下错误:

无法扩展由以前版本的Scala编译的宏

在Def.inputTask宏观只是打破了斯卡拉2.11.1,还是我失去了一些明显的细节?

现在,上面的函数驻留在可以想象的最简单的sbt插件中.完全没有依赖关系.

Eug*_*ota 31

sbt 0.13.x系列在加载时使用Scala 2.10.x,因此sbt 0.13.x本身必须针对Scala 2.10编译,所有sbt插件也适用于0.13.x.

注意:sbt 0.13可以使用2.11.x定义Scala项目.

  • 在你的build.sbt文件中,确保你`scalaVersion:="2.10.4"`而不是像'scalaVersion:="2.11.x"` (3认同)

Rod*_*ias 16

如果您正在运行scala 2.11.x,请在build.sbt文件中使用此行.

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

  • 为什么有人赞成这个?这根本没什么*与问题有关.这完全无关紧要. (3认同)
  • Rodrigo正在解决在scalatest_2.10中使用Scala 2.11.x时导致的类似错误消息.有趣,谷歌搜索错误信息带我到这个问题,但罗德里戈的答案解决了我的问题.谢谢罗德里戈!(可能想要编辑你的答案,解释你的答案就是用于搜索此错误信息的新闻). (3认同)