[英]Scala error: type mismatch
我要运行的项目的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 run时,出现以下错误:
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的tasks
和settings
是一种特殊的类型,您不能在代码中直接使用它们。 只有在定义其他任务(或设置)时才可以使用它们,这些任务(或设置)引入了它们之间的依赖性。
如果要使用任务值,则需要这样说:
stage := (stage dependsOn buildAssistantJs).value
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.