2012-08-24 20 views
1

我有世界上最簡單的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文件。

回答

1

有一天,Nexus服務器代理另一個存儲庫時,我遇到了一個非常類似的問題。就我而言,更改Nexus中的過期設置可解決問題。我將「Artifact Max Age」和「Metadata Max Age」從1天縮短爲1分鐘。

+0

謝謝;這是有幫助的,但不是根本問題。 –

+1

只是好奇,你可以更新與你發現的任何根源的問題? –

相關問題