2

使用 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))
4

1 回答 1

4

runis an并且isInputTask[Unit]的类型和右侧需要是 a 。runTaskDef.Initialize[InputTask[Unit]]:=Unit

你所做的编译是因为任何值都可以被丢弃以支持 type 的返回值Unit,但它没有与以前相同的语义。

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

run in Compile := Defaults.runTask(
  fullClasspath in Compile,
  mainClass.in(Compile, run),
  runner.in(Compile, run)).evaluated
于 2017-04-03T09:24:25.657 回答