如何使用SBT从Nexus检索快照依赖项?

时间:2010-12-03 03:02:31

标签: maven-2 sbt ivy nexus

我有一个maven2存储库,我正在尝试使用附加的时间戳来获取快照工件。我(不出所料)能够在使用maven2进行构建时能够很好地检索它,但是当使用simple-build-tool (sbt)进行构建时,我非常喜欢,我无法将其拉下来。

我可以从this question about snapshots in Ivy看到可以配置Ivy来获取快照工件,但我不知道如何告诉sbt这样做。

我当前配置的相关位:

val snapshotsName = "Snapshots Repository"
val snapshotsUrl = new java.net.URL("http://host:port/path/to/root")
val snapshotsPattern = "[organisation]/[module]/[revision]/[artifact]-[revision](-[classifier]).[ext]"
val snapshots = Resolver.url(snapshotsName, snapshotsUrl)(Patterns(snapshotsPattern))
Credentials(Path.userHome / ".ivy2" / ".credentials", log)

更新:经过一些修补后,看起来我可以使用以下模式指向正确的工件网址。

val snapshotsPattern = "[organisation]/[module]/[revision]-SNAPSHOT/[artifact]-[revision](-[timestamp]).[ext]"

有了这个,我仍然需要在依赖项中指定额外的时间戳

val dep = "group" % "artifact" % "0.0.1" extra("timestamp" -> "20101202.195418-3")

但它确实拉了神器。但是它 NOT 拉出工件的依赖关系。所以我似乎还有一些问题。

1 个答案:

答案 0 :(得分:2)

好吧,我对此进行了整理,但实际上并不是SBT问题,这是100%的用户错误。

Nexus我正在使用必需的身份验证。我没有正确设置身份验证凭据(see my authentication question),因为它没有正确验证它没有找到元数据pom文件,因此SBT打印出错误消息,它失败了我,错误,假设 进行身份验证但未解决。所以我开始搞乱这些模式,如实际问题所证明的那样。

但是,现在我正确地进行了身份验证设置,我改回了常规的存储库声明,如下所示:

val snapshotsRepo = "Snapshots Repository" at "http://host:port/path/to/snapshots/root/"

一切正常。检索工件并解决依赖关系。