我遇到了maven依赖的问题,该依赖存在于我的本地存储库中。
SBT无法找到它。已经将日志级别设置为调试,但没有获得任何新内容。
文件位于存储库中。我将粘贴路径从控制台复制到文件资源管理器,它们就在那里。
输出:
[debug] trying file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.pom
[debug] tried file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.pom
[debug] Local Maven Repository: resource not reachable for com/twitter#naggati;2.0.0: res=file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0
.0/naggati-2.0.0.pom
[debug] trying file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.jar
[debug] tried file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0.0/naggati-2.0.0.jar
[debug] Local Maven Repository: resource not reachable for com/twitter#naggati;2.0.0: res=file://c:/Users/userz/.m2/repository/com/twitter/naggati/2.0
.0/naggati-2.0.0.jar
[debug] Local Maven Repository: no ivy file nor artifact found for com.twitter#naggati;2.0.0
编辑:我在项目/构建中使用scala文件添加了路径,如http://code.google.com/p/simple-build-tool/wiki/LibraryManagement
中所述“sbt可以搜索您当地的Maven存储库,如果您将其添加为存储库:”
val mavenLocal = "Local Maven Repository" at "file://"+Path.userHome+"/.m2/repository"
这使得sbt看起来在本地存储库中。之前没有。
因此scala文件如下所示:
import sbt._
class Foo(info: ProjectInfo) extends DefaultProject(info) {
val mavenLocal = "Local Maven Repository" at "file://c:/Users/userz/.m2/repository"
}
(我硬编码Path.userHome以排除可能的错误原因。正如所料,它没有改变任何东西。)
答案 0 :(得分:123)
只需在build.scala或build.sbt文件中添加此行
即可resolvers += Resolver.mavenLocal
答案 1 :(得分:57)
file:
说明符后需要三个斜杠。这是因为在第二个和第三个斜杠之间,您有一个可选的主机名。 Wikipedia对file:
网址
您遇到了问题,因为"file://"+Path.userHome+"/.m2/repository"
的典型模式假定为Unix文件系统,其中路径以/
开头,不包含:
,并且通常不包含空格。
要拥有适用于Windows和Linux / Unix的非硬编码路径,请使用:
"Local Maven" at Path.userHome.asFile.toURI.toURL + ".m2/repository"
答案 2 :(得分:21)
要使这个版本适用于较新版本的sbt,请将以下内容添加到build.sbt:
resolvers += "Local Maven Repository" at "file:///"+Path.userHome+"/.m2/repository"
答案 3 :(得分:3)
当您定义项目时,请注意,您需要在设置中包含解析程序。全局解析器将无法识别。
示例:
lazy val core = (project in file("core")).
settings(commonSettings: _*).
settings(
resolvers += Resolver.mavenLocal,
name := "Core",
libraryDependencies := coreDependencies
)