sbt弃用警告<< =替换为:=导致找不到主类

时间:2017-04-02 20:50:44

标签: scala sbt deprecation-warning mainclass

使用sbt 0.13.13时。我可以观察到,当使用:=时没有找到主类(但没有显示弃用警告),而对于<<=我收到警告,但找到了主类。这有什么不对?

run in Compile := Defaults.runTask(fullClasspath in Compile, mainClass in(Compile, run), runner in(Compile, run))
run in Compile <<= Defaults.runTask(fullClasspath in Compile, mainClass in(Compile, run), runner in(Compile, run))

1 个答案:

答案 0 :(得分:4)

runInputTask[Unit]runTask的类型为Def.Initialize[InputTask[Unit]],而:=的右侧需要为Unit

你做了什么编译,因为任何值都可以被丢弃,而不是类型Unit的返回值,但是它没有和以前一样的语义。

对于输入任务,您需要“评估”任务:

run in Compile := Defaults.runTask(
  fullClasspath in Compile,
  mainClass.in(Compile, run),
  runner.in(Compile, run)).evaluated