2017-04-02 51 views
2

使用sbt时0.13.13。我可以观察到在使用:=时没有找到主类(但没有显示弃用警告),并且对于<<=,我收到警告,但找到了主类。这里有什么问题?sbt弃用警告<< =替换为:=找不到主类的结果

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)) 
+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 
+1

“任何值都适合单位类型”,只是为了迂回,更多的是可以丢弃任何值并且可以插入单位值()。 –

+0

对,修好了 –