2017-04-02 56 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

對,修好了 –