Scala 错误:类型不匹配



我在尝试运行的项目的sbt.build文件中有以下代码:

lazy val buildAssistantJs = taskKey[Unit]("Build assistant JavaScript frontend")
buildAssistantJs := {
println("Building assistant JavaScript frontend...")
"npm install" #&& "npm update" #&& "npm run assistant-build" !
}
stage := stage dependsOn buildAssistantJs

当我执行 SBT 运行时,这给了我以下错误:

error: type mismatch;
found   : sbt.Def.Initialize[sbt.Task[sbt.File]]
(which expands to)  sbt.Def.Initialize[sbt.Task[java.io.File]]
required: sbt.File
(which expands to)  java.io.File
stage := stage dependsOn buildAssistantJs
^
[error] Type error in expression

有没有人知道为什么会这样以及如何解决错误?请注意,我正在尝试在Windows上运行它,以防这有任何不同。

注意:我使用的是 Scala 版本 2.11.4 和 sbt 版本 1.0.2。

SBT的taskssettings是一种特殊的品种,你不能在你的代码中逐字面地使用它们。只有在定义其他任务(或设置(时才能使用它们,这会在它们之间引入依赖关系。

如果要使用任务值,则需要说明:

stage := (stage dependsOn buildAssistantJs).value

最新更新