2016-11-15 200 views
1

我想用SBT構建我的第一個項目。我需要添加一些罐子。我build.sbt樣子:SBT缺少依賴關係

resolvers += "Local Maven Repository" at "file://"+Path.userHome.absolutePath+"/.m2/repository" 

name := "abc" 

version := "1.2.3" 

scalaVersion := "2.11.6" 

libraryDependencies ++= Seq(
    "org.slf4j" % "slf4j-log4j12" % "1.7.1", 
    "org.slf4j" % "slf4j-api" % "1.7.1" 
) 

,但項目沒有編說

object slf4j is not a member of package org 

其中進出口假設是不存在的類路徑的依賴造成的。我該如何解決這個問題?謝謝。

+0

歡迎來到Scala,如果你不能下載依賴關係,那麼這個消息將會讀取'unresolved dependency ....'。你可以在你試圖使用'slf4j'的地方發佈你的導入語句嗎? – TheM00s3

+0

import org.slf4j。{Logger,LoggerFactory} – aiguy

+1

您是否重新載入配置? – mfirry

回答

0

嘗試使用下面的import語句代替

import _root_.org.slf4j.{Logger, LoggerFactory} 

讓我知道它是否適合你。

+0

不,它似乎沒有任何區別。 – aiguy

0

如果您使用IntelliJ,請轉至View > Tools Window > SBT,然後在SBT窗口中單擊刷新圖標(工具提示爲「刷新所有項目」)。

然後嘗試重建。如果從命令行運行sbt compile,請修改您的問題以包含完整的錯誤輸出。

slf4j沒有從您的本地類路徑解析。它已被SBT(使用引擎蓋下的Ivy)從中央Maven倉庫中拉出來。正如其他評論所述,似乎您的編輯正在嘗試使用舊版本的build.sbt文件編譯您的項目;因此不會牽扯到依賴關係。

在InteliJ當你修改build.sbt時,它應該在頂部彈出一條消息詢問你是否要刷新項目。如果您使用其他編輯器,這可能位於不同的位置。從命令行運行sbt將始終使用當前保存的build.sbt版本。

1

實際上,目錄結構看起來不正確。我的src目錄在項目/下,似乎是問題所在。可能將源複製到錯誤的地方。

+0

'project /'下的源代碼是你構建定義的一部分,而不是你主代碼庫的一部分。 –