SBT缺少依赖关系

时间:2016-11-15 21:33:33

标签: scala sbt dependency-management

我正在尝试用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
我假设是由不依赖于类路径的依赖引起的。我该如何解决这个问题?感谢。

3 个答案:

答案 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版本。