SBT 忽略本地 Maven 仓库的文件解析器

SBT ignores file resolver to local maven repo

我正在尝试使用发布到本地 Maven 存储库的依赖项。我在 Windows 下使用 SBT 0.13.7 和 JDK8。这是我在 build.scala

中尝试过的
resolvers ++= {
  val mavenLocal = Resolver.file("local2", file(Path.userHome + "/.m2/repository"))(Resolver.mavenStylePatterns)

  Seq(
    mavenLocal,
// Resolver.publishMavenLocal,
    "spray releases" at "http://repo.spray.io/",
    "spray nightlies" at "http://nightlies.spray.io/",
    "jasperreports" at "http://jasperreports.sourceforge.net/maven2/",
    "Akka Snapshot Repository" at "http://repo.akka.io/snapshots/",
    "Miredot" at "http://nexus.qmino.com/content/repositories/miredot"
  )
}

奇怪的是它对我不起作用。我正在监视系统文件 activity,而 SBT 甚至没有尝试转到上述文件夹。我什至尝试使用提供的 Resolver.publishMavenLocal.

这是我在日志中得到的

[warn]  module not found: com.wordnik#swagger-jersey2-jaxrs;1.5.2-M2-SNAPSHOT
[warn] ==== local: tried
[warn]   C:\Users\root\.ivy2\local\com.wordnik\swagger-jersey2-jaxrs.5.2-M2-SNAPSHOT\ivys\ivy.xml
[warn] ==== public: tried
[warn]   https://repo1.maven.org/maven2/com/wordnik/swagger-jersey2-jaxrs/1.5.2-M2-SNAPSHOT/swagger-jersey2-jaxrs-1.5.2-M2-SNAPSHOT.pom
[warn] ==== local2: tried
[warn] ==== spray releases: tried
[warn]   http://repo.spray.io/com/wordnik/swagger-jersey2-jaxrs/1.5.2-M2-SNAPSHOT/swagger-jersey2-jaxrs-1.5.2-M2-SNAPSHOT.pom
[warn] ==== spray nightlies: tried
[warn]   http://nightlies.spray.io/com/wordnik/swagger-jersey2-jaxrs/1.5.2-M2-SNAPSHOT/swagger-jersey2-jaxrs-1.5.2-M2-SNAPSHOT.pom
[warn] ==== jasperreports: tried
[warn]   http://jasperreports.sourceforge.net/maven2/com/wordnik/swagger-jersey2-jaxrs/1.5.2-M2-SNAPSHOT/swagger-jersey2-jaxrs-1.5.2-M2-SNAPSHOT.pom
[warn] ==== Akka Snapshot Repository: tried
[warn]   http://repo.akka.io/snapshots/com/wordnik/swagger-jersey2-jaxrs/1.5.2-M2-SNAPSHOT/swagger-jersey2-jaxrs-1.5.2-M2-SNAPSHOT.pom
[warn] ==== Miredot: tried
[warn]   http://nexus.qmino.com/content/repositories/miredot/com/wordnik/swagger-jersey2-jaxrs/1.5.2-M2-SNAPSHOT/swagger-jersey2-jaxrs-1.5.2-M2-SNAPSHOT.pom

我是不是漏掉了什么?

当我需要从我的本地 maven 存储库导入库时,我通常使用这一行:

resolvers += "Local Maven" at Path.userHome.asFile.toURI.toURL + ".m2/repository"

SBT 1.3.8 不会解析 maven local,除非你尝试这个:

  • c:\Users\mac\.sbt\ 下添加名称为 repositories 的文件,并添加:

    [repositories]
    
    maven-local 
    
  • 使用参数 -Dsbt.override.build.repos=true 启动 sbt。

仔细阅读sbt在线文档,你就能找到答案

resolvers += Resolver.mavenLocal

对于 sbt 1.5.5(如 Victor Ma 所述),我必须创建一个存储库文件 - ~/.sbt/repositories 并向其中添加 maven-local。几点——你不需要提供任何 sbt 参数,因为 sbt 会自动获取文件。您还需要提供所需的其余存储库,以便也可以解决其他依赖项。您至少需要:

[repositories]

local
maven-local
maven-central