2016-11-15 235 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 /'下的源代码是你构建定义的一部分,而不是你主代码库的一部分。 –