SBT取决于用法-从0.12迁移到0.13

sbb*_*sbb 3 scala sbt

我在build.sbt中有这样的命令

run <<= (run in Compile) dependsOn npmBuildTask
Run Code Online (Sandbox Code Playgroud)

根据文档<< =已弃用,所以我想使用:=这个。我尝试过

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
Run Code Online (Sandbox Code Playgroud)

但是他们全都不为我工作。请你帮助我好吗?

sbb*_*sbb 6

终于我找到了解决方案。

compile := ((compile in Compile) dependsOn npmBuildTask).value
Run Code Online (Sandbox Code Playgroud)

这对我有用。问题出在以下代码中:

run := ((run in Compile) dependsOn npmBuildTask).value
Run Code Online (Sandbox Code Playgroud)

编译和运行是不同的。编译的返回类型为sbt.TaskKey [sbt.inc.Analysis],运行的返回类型为sbt.InputKey [scala.Unit]。因此,您应该使用以下命令:

run := ((run in Compile) dependsOn npmBuildTask).evaluated
Run Code Online (Sandbox Code Playgroud)

现在一切正常。