2013-03-05 19 views
0

第一天在一個項目和Maven的第一天,我已經浪費了很多時間來試圖構建它。試圖快速復活一箇舊的Maven構建項目

看來問題是,這個舊項目有配置,POMs等,其中嵌入了許多破損的URL。即Maven生成的堆棧跟蹤呈現大量URL,當嘗試下載項目依賴性時會被破壞。

我只給出了包含Maven配置文件的項目源代碼。我還沒有提供現有的Maven倉庫,項目相關的庫或任何構建環境等。 我一直在黑客攻擊這些文件,但每次構建都沒有太多的嘗試。

我在做一些根本性錯誤的事情還是這個Maven配置在2008年真的陷入困境?

更新:

我真的POM被卡在2008年,即憑藉版本,它是一個即時快照,而Java世界的其餘部分繼續前進。

某些依賴關係不在任何存儲庫中,其中大部分都是已停用的項目,因此我不再使用它們。我不得不重寫整個POM。我不得不花費很多時間來調整版本,以確保依賴關係和插件之間的兼容性。經過多次戰鬥;一些插件不會共存,互相破壞。總而言之,這是多少個多小時的努力......對於這個項目來說太多了,只有一個開發人員,而且我相信我現在才知道足夠危險。 在這種情況下,好的IDE構建系統將是更好的選擇。

+1

是否將您的settings.xml或POM指向不存在的遠程存儲庫? – ftr 2013-03-05 07:52:53

+0

首先要花時間學習Maven。 *「我在做一些根本性錯誤」*。是的...見前。 – 2013-03-05 10:42:44

+0

另請參見:您是否支持代理? – carlspring 2013-03-05 12:27:24

回答

3

ftr的建議(in the comments section)是正確的:Maven無法下載某些依賴關係,但這並不意味着這些依賴關係不再存在。這可能是因爲Maven配置的extra-repos部分現在缺少某些存儲庫,並且/或者存在其他一些連接問題(如錯誤的代理配置 - 這可能會導致您可以訪問某些回購站,但不能訪問其他回收站)。

我一直處於類似的情況,並發現,儘管最初Maven在嘗試下載大約80%的依賴關係時報告了錯誤,在對Maven的配置進行了各種調整之後,我最終使其下載了所有的依賴關係除了其中一個實際上只是一個有人做的定製jar而且是從本地文件系統直接獲取的,但除此之外)。

這裏就是我想要做的:

  • 所有Maven的說,它不能下載,試圖發現2或3分別是「衆所周知」的依賴關係(譬如,如果它說,它無法下載Servlet或某個Spring庫,請記下他正在嘗試聯繫的那些URL)。

  • 手動檢查這些URL是否確實可以訪問(通過瀏覽器)。如果是這樣,請確保Maven正在查找的版本存在依賴關係。也許自項目創建以來它們已經更新,舊版本不再保存。在這種情況下,90%的解決方案是簡單地更新Maven的pom以指向新版本。

  • 如果手動檢查依賴項的URL,顯示實際上依賴項存在,對於Maven正在查找的版本,請確保沒有代理服務器或某種其他形式的Internet連接「額外配置」 ,但不適用於Maven。如果是這樣的話,只需使用所有這些額外參數(代理,代理身份驗證等)更新Maven的配置。

  • 如果依賴關係URL根本不存在,請嘗試使用Google搜索來查看該依賴關係是否現在不存在於其他某個回購站點上。例如,許多JBoss依賴項(如Hibernate等)在2007-2009左右的某個地方改變了回購的位置。如果是這種情況,只需將新的回購添加到Maven的回購清單(如果不再存在舊回購清單,則刪除舊回購清單)。

  • 最後,爲了解決這個問題的好老可恥的辦法是去哪個有一個同事(或必須)是與您的項目在某些時候,他的本地Maven回購複製到你的機器:)