2017-06-20 73 views
0

我有一個這樣的命令build.sbtSBT dependsOn用法 - 遷移從0.12至0.13

run <<= (run in Compile) dependsOn npmBuildTask 

根據文檔< < =已過時,所以我想用:=這一個。 我試過了;

run in Compile := ((run in Compile).dependsOn(npmBuildTask).value) 
run in Compile := (run in Compile).dependsOn(npmBuildTask).value 
run in Compile := run.dependsOn(npmBuildTask).value 

但是他們全部都不適合我。你可以幫我嗎?

+0

「不適合我」 - 你會收到一條錯誤消息嗎?如果是這樣,那是什麼?還是你得到不正確的行爲?如果是這樣,那是什麼? –

+0

我沒有得到任何錯誤,但應用程序無法啓動。我看不到應用程序的主頁。它只是像一個無盡的循環掛起。 – borney

回答

0

最後我找到了解決方案。

compile := ((compile in Compile) dependsOn npmBuildTask).value 

這是爲我工作。問題出在以下代碼中:

run := ((run in Compile) dependsOn npmBuildTask).value 

編譯和運行是不同的。編譯的返回類型爲sbt.TaskKey [sbt.inc.Analysis],並且運行的返回類型爲sbt.InputKey [scala.Unit]。正因爲如此,你應該使用這個命令:

run := ((run in Compile) dependsOn npmBuildTask).evaluated 

現在一切工作正常。