我正在尝试用SBT构建我的第一个项目。我需要添加一些罐子。我的build.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 :(得分:1)
实际上,目录结构似乎不正确。我的src目录在project /下似乎是问题所在。可能会将来源复制到错误的位置。
答案 1 :(得分:0)
尝试使用以下import语句
import _root_.org.slf4j.{Logger, LoggerFactory}
让我知道它是否适合您。
答案 2 :(得分:0)
如果您正在使用IntelliJ,请转到View > Tools Window > SBT
,然后在SBT窗口中,单击刷新图标(工具提示显示:刷新所有项目)。
然后尝试重建。如果从命令行运行sbt compile
,请修改您的问题以包含完整的错误输出。
未从本地类路径解析slf4j。它被SBT(在引擎盖下使用常春藤)拉入中心,从中央maven存储库中取出。正如其他评论所述,您的编辑器似乎正在尝试使用旧版build.sbt
文件来编译您的项目;因此,不要牵扯到依赖。
在InteliJ中修改build.sbt
时,它应在顶部弹出一条消息,询问您是否要刷新项目。如果您使用其他编辑器,则可能位于不同的位置。从命令行运行sbt
将始终使用当前保存的build.sbt
版本。