2010-12-03 12 views
4

Ich habe ein maven2-Repository, von dem ich versuche, ein Snapshot-Artefakt mit einem angehängten Zeitstempel zu holen. Ich bin (nicht überraschend) in der Lage, es gut zurückzubekommen, wenn ich mit maven2 baue, aber wenn ich mit simple-build-tool (sbt) baue, was ich sehr bevorzuge, kann ich es nicht herunterziehen.Wie kann ich mithilfe von SBT Snapshot-Abhängigkeiten von Nexus abrufen?

Ich kann von this question about snapshots in Ivy sehen, dass es möglich ist, Ivy zu konfigurieren, um Snapshotartefakte zu erhalten, aber ich weiß nicht, wie man es sbt, es zu tun.

Die entsprechenden Bits meiner aktuellen Konfiguration:

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) 

Update: Nach etwas mehr Bastelei es sieht aus wie ich es auf die richtige Artefakt URL mit dem folgenden Muster Punkt bekommen.

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

Damit ich muss noch den Zeitstempel zusätzlich in Abhängigkeit angeben

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

aber es hat das Artefakt ziehen. Aber es tut NICHT ziehen Sie die Abhängigkeiten des Artefakts. Es scheint also, dass ich immer noch etwas falsch gemacht habe.

+0

Ich habe versucht, eine ivysettings.xml-Datei zu verwenden, um den Resolver zu definieren, aber es scheint nicht von SBT gelesen zu werden. Ich habe auch versucht, die Resolver-XML zu verknüpfen. –

Antwort

2

In Ordnung, ich habe das aussortiert, aber es war nicht wirklich ein SBT-Problem, es war 100% Benutzerfehler.

Das Nexus Ich verwendete erforderliche Authentifizierung. Ich hatte nicht die Authentifizierungsdaten korrekt eingerichtet (see my authentication question) und weil es nicht richtig authentifiziert wurde es fand nicht die Metadaten Pom-Dateien und so SBT ausgedruckt die Fehlermeldung, dass es fehlgeschlagen ist, nahm ich falsch, es angenommen war authentifizierend aber nicht auflösend. Also begann ich, mich mit den Mustern zu beschäftigen, wie es in der eigentlichen Frage gezeigt wurde.

Aber jetzt, dass ich die Authentifizierung Setup korrekt geändert ich wieder nur eine gewöhnliche Repository Erklärung wie folgt:

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

und alles funktioniert. Artefakte werden abgerufen und Abhängigkeiten aufgelöst.