繁体   English   中英

Scala错误:类型不匹配

[英]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的taskssettings是一种特殊的类型,您不能在代码中直接使用它们。 只有在定义其他任务(或设置)时才可以使用它们,这些任务(或设置)引入了它们之间的依赖性。

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

 stage := (stage dependsOn buildAssistantJs).value

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM