2010-12-03 70 views
4

我有一個maven2存儲庫,我試圖用附加的時間戳獲取快照工件。我(不出意外)在使用maven2構建時能夠檢索到它,但在構建simple-build-tool (sbt)時,我非常喜歡這種方法,所以我無法將其解決。如何使用SBT從Nexus檢索快照依賴關係?

我可以從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) 

更新:一些修修補補它看起來像我能得到它在與下面的模式正確的神器URL後點。

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

有了,我還需要在指定的依賴

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

時間戳多餘的,但它確實拉神器。然而,它確實不是拉取神器的依賴關係。所以看來我仍然有錯誤。

+0

我試圖使用ivysettings.xml文件來定義解析器,但它似乎沒有被SBT讀取。我也嘗試內聯解析器XML。 – 2010-12-03 03:48:21

回答

2

好吧,我得到了這個整理,但它實際上不是一個SBT問題,它是100%的用戶錯誤。

Nexus我正在使用所需的身份驗證。我沒有正確設置認證憑證(see my authentication question),並且因爲它沒有正確認證,所以沒有找到元數據文件,所以SBT打印出錯誤信息,說明它失敗了,錯誤地認爲它是認證但沒有解決。所以我開始搞亂實際問題中證明的模式。

不過,現在我已經驗證設置正確我改回只是一個普通的倉庫聲明,如下所示:

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

和一切正常。檢索工件並解決依賴關係。