我用
name := "sbt-publish-test"
version := "0.1-SNAPSHOT"
publishTo := Some(Resolver.file("sbt-repo", file("/home/pishen/sbt-repo")))
和
sbt publish
将我的项目发布到目录中。现在在另一个项目中,我想解决我刚刚发布的项目。我用
resolvers += "my-repo" at "file:///home/pishen/sbt-repo"
libraryDependencies += "default" %% "sbt-publish-test" % "0.1-SNAPSHOT"
并且能够毫无错误地解决项目。
show resolvers
的结果是:> show resolvers
[info] List(my-repo: file:///home/pishen/sbt-repo)
但是,当我使用
resolvers += Resolver.file("my-repo", file("/home/pishen/sbt-repo"))
libraryDependencies += "default" %% "sbt-publish-test" % "0.1-SNAPSHOT"
show resolvers
的结果变得:> show resolvers
[info] List(FileRepository(my-repo,FileConfiguration(true,None),Patterns(ivyPatterns=List(), artifactPatterns=List(/home/pishen/sbt-repo/[organisation]/[module](_[scalaVersion])(_[sbtVersion])/[revision]/[artifact]-[revision](-[classifier]).[ext]), isMavenCompatible=true, descriptorOptional=false, skipConsistencyCheck=false)))
并且 sbt 说当我输入
sbt update
时它无法解析依赖项:[warn] module not found: default#sbt-publish-test_2.10;0.1-SNAPSHOT
[warn] ==== local: tried
[warn] /home/pishen/.ivy2/local/default/sbt-publish-test_2.10/0.1-SNAPSHOT/ivys/ivy.xml
[warn] ==== public: tried
[warn] https://repo1.maven.org/maven2/default/sbt-publish-test_2.10/0.1-SNAPSHOT/sbt-publish-test_2.10-0.1-SNAPSHOT.pom
[warn] ==== my-repo: tried
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: default#sbt-publish-test_2.10;0.1-SNAPSHOT: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
这是一个错误吗?还是我用
Resolver.file()
以错误的方式? "name" at "url"
有什么区别和 Resolver.file()
?我正在使用 sbt 0.13.7。
最佳答案
我的怀疑是当你使用 Resolver.file
时在这种情况下,它更像是一个“构建器”创建者,期望后续方法调用在使用 "name" at "uri"
时填充具有不同默认值的其他配置信息。句法。
sbt ScalaDoc for Resolver.file.apply
暗指这些方面的事情:
Constructs a file resolver with the given name. The patterns to use must be explicitly specified using the
ivys
orartifacts
methods on the constructed resolver object.
当我做了类似于你正在做的事情时,我从
File
开始并使用其 API 将其转换为 URI 形式:resolvers += "my-repo" at file("/home/pishen/sbt-repo").toURI.toASCIIString
关于scala - sbt 找不到由 Resolver.file() 定义的本地存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794563/