首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Scala错误:类型不匹配

Scala错误:类型不匹配
EN

Stack Overflow用户
提问于 2018-07-01 21:18:02
回答 1查看 141关注 0票数 0

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

代码语言:javascript
复制
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时,会出现以下错误:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-02 00:26:23

SBT的taskssettings是一种特殊的类型,您不能在代码中直接使用它们。只有在定义其他任务(或设置)时才能使用它们,这会引入它们之间的依赖关系。

如果你想使用tasks值,你需要这样说:

代码语言:javascript
复制
 stage := (stage dependsOn buildAssistantJs).value
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51123643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档