SBT 取决于使用情况 - 从 0.12 迁移到 0.13



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

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

但是他们整个都不适合我。你能帮帮我吗?

最后我找到了解决方案。

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

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

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

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

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

现在一切正常。

最新更新