2013-03-15 132 views
3

我正在做一個SBT任務,需要向某個服務器發出多部分POST請求。我想用Dispatch來提出請求。我有我的項目的頂級水平build.sbt如下: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爲什麼找不到它?

+0

嘗試在'project'文件夾中將'build.sbt'與'libraryDependencies'行結合起來。此外,這些[文檔](http://www.scala-sbt.org/release/docs/Getting-Started/Full-Def.html#sbt-is-recursive)可以幫助理解項目結構。 – 4e6 2013-03-15 06:06:10

回答

7

如果你想在Build.scala中引用某些依賴項,它必須在build項目中聲明,而不是在「項目項目」中聲明。這意味着它應該是project/build.sbt

事實證明,project/Build.scala也是一個SBT項目,就像您的項目一樣。

SBT作者在sbt is recursive給出了很好的解釋。