SBT无法解决构建定义中的依赖关系

时间:2013-03-15 05:46:09

标签: scala sbt

我正在制作一项需要向某个服务器发出多部分POST请求的SBT任务。我想使用Dispatch来发出请求。我在项目顶层的build.sbt中有以下内容:

libraryDependencies ++= Seq(
  "net.databinder.dispatch" %% "dispatch-core" % "0.9.5"
)

任务定义位于project/Build.scala。我有

import sbt._
import Keys._
import dispatch._

object SubmitBuild extends Build {
  ...
}

我收到以下错误消息:

[error] /Users/ken/xxxxtools/project/Build.scala:3: not found: object dispatch
[error] import dispatch._
[error]        ^

如果我删除import dispatch._,那么sbt将编译。我知道我安装了Dispatch。 SBT为什么不能找到它?

1 个答案:

答案 0 :(得分:7)

如果要在Build.scala中引用某些依赖项,则必须在构建项目中而不是在“项目项目”中声明它。这意味着它应该是project/build.sbt

事实证明project/Build.scala也是一个SBT项目,就像你的项目一样。

SBT作者在sbt is recursive中给出了非常好的解释。