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
我正在尝试使用发布到本地 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