我有世界上最簡單的Maven/Jenkins/Nexus設置。當我可以手動下載它時,爲什麼Maven找不到我的SNAPSHOT神器?
Maven每天通過Jenkins運行數十次,並部署SNAPSHOT
到我們的Nexus存儲庫就好了。
每一次都是藍色的月亮,看起來沒有任何原因,運行另一個需要分辨率爲SNAPSHOT
的Maven作業將會失敗。在這種極少數情況下,Maven告訴我它不能再找到在幾個小時之前上傳的SNAPSHOT
。
如果我將瀏覽器指向Maven正在使用的存儲庫位置,我可以發現它們很好。
在這些錯誤之前,我總是看到(正如我在成功案例中那樣)正在下載的一批maven-metadata.xml
文件。據推測,這些文件告訴Maven如何拍攝, 1.009-SNAPSHOT
並將其變爲1.009-somehugetimestamphere
。
(我從來沒有發現這個文件的任何文件,並且它似乎並沒有標註任何所載的「最新」或任何類似的文件名。其實我看不出它是如何使用任何在所有,但顯然它必須是)。
(我也看到在調試輸出中的resolver-status.properties
的各種引用,這似乎是另一個未記錄的文件寫入本地存儲庫,跟蹤與解析有關的事情,但我承認我不知道是什麼)
我的問題是:的確如此 Mav en去下載並解決和檢查SNAPSHOT
s?假設存儲庫信息是有效的(畢竟,這項工作有90%的時間工作,沒有改變的時候只有10%的時間沒有完成),Maven採用什麼步驟來找到合適的SNAPSHOT
?
編輯:找到一些文件:http://maven.apache.org/ref/3.0.4/maven-repository-metadata/repository-metadata.html雖然它並沒有解釋爲什麼沒有maven-metadata.xml
文件我在2.0的Nexus設備發現在他們的<latest/>
元素。它也沒有詳細說明如何使用這些文件。
我的posting on the users list帶來了一些迴應,其中一些可能是Nexus問題,因爲它可能會或可能不會正確生成這些maven-metadata.xml
文件。
謝謝;這是有幫助的,但不是根本問題。 –
只是好奇,你可以更新與你發現的任何根源的問題? –