有什麼方法可以強制Maven使用遠程工件,而不是使用遠程工件嗎?因爲我擔心運行時錯誤,而不是編譯錯誤生成服務器是無效的選項。如何在不使用本地安裝的工件的情況下構建
P.S.我知道我可以刪除或重命名.m2文件夾,但我敢打賭有一些更聰明的方法來做到這一點。也許一些插件或特殊命令參數?
有什麼方法可以強制Maven使用遠程工件,而不是使用遠程工件嗎?因爲我擔心運行時錯誤,而不是編譯錯誤生成服務器是無效的選項。如何在不使用本地安裝的工件的情況下構建
P.S.我知道我可以刪除或重命名.m2文件夾,但我敢打賭有一些更聰明的方法來做到這一點。也許一些插件或特殊命令參數?
沒有本地存儲庫意味着你的類路徑幾乎完全由遠程服務器上的URL組成。我不明白爲什麼會支持這種方式,因爲執行會很糟糕,並且任何丟棄的連接都會導致類加載器問題。擁有本地存儲庫可確保在編譯/執行開始之前可用的罐子。
還要考慮WAR和EAR項目(以及許多使用依賴插件)依靠下載罐子來完成其包裝。如果必須從每個構建的遠程存儲庫中檢索這些數據,將會有巨大的開銷。我很確定中央的管理者不會熱衷於處理這種負載。
一些替代品,你要考慮:
有關最新信息和發佈的更多詳細信息,請參見section 9.3.1.3 of the Maven book。
如果您使用的內部存儲庫管理器(這裏強制性Nexus和Artifactory引用),清除本地存儲庫的開銷大大降低 - 你會只是具有提高本地網絡流量負載。
我不認爲真的有辦法做你所要求的。您可以查看SNAPSHOT版本(但這意味着將上游項目的版本字符串更改爲SNAPSHOT版本)。
順便說一句,這是在最近Java Posse episode (#268)詳細討論。我不認爲他們最終會提出解決方案,但您可能會在那裏得到一些好的想法。
我也喜歡Rich Seller's ideas的一些,我將自己看看。
我希望找到一些插件,檢查如果我有最新版本的lib,如果我手動安裝的東西比忽略,並使用最新的回購。 – IAdapter 2009-07-23 14:17:42