一千萬個為什麽

搜索

如何防止maven解決本地存儲庫中的依賴關系

有沒有辦法告訴maven(在執行 mvn packagemvn site 或...時)不解析本地存儲庫中的依賴項?

Background of this question: Sometimes I get into problems, when previously cached dependencies (e.g. SomeProject-0.7-ALPHA) are no longer available in the remote repository. In my local build everything still works fine as the dependency has been cached before. As soon as I share my pom with others, they may get into trouble, as they dont have a cached version of that dependency and the dependency can no longer be resolved from the remote repository.

任何幫助將不勝感激。提前致謝!

最佳答案

有沒有辦法告訴maven(當做mvn包,mvn網站或...時)不解析本地存儲庫中的依賴項?

不,這就是整個依賴項解析的工作原理(通過本地存儲庫)。

有時,當以前緩存的依賴項(例如SomeProject-0.7-ALPHA)在遠程存儲庫中不再可用時,我會遇到問題。

很抱歉,說明顯而易見但從遠程存儲庫中刪除依賴項是一種可怕的做法,導致......以及你所面臨的那種麻煩。如果可能,請避免這樣做。

當我與其他人分享我的pom時,他們可能會遇到麻煩,因為他們沒有該依賴項的緩存版本,並且無法再從遠程存儲庫解析依賴關系。

檢查事物是否適用於其他人的一種方法是清除您將要從本地存儲庫共享的項目的依賴關系並重新解決它們。當然,手動執行此操作會非常痛苦,但好消息是 Maven依賴插件具有 purge-local-repository 目標。

mvn org.apache.maven.plugins:maven-dependency-plugin:2.1:purge-local-repository  \
    -DreResolve=true \
    -DactTransitively=true \ 
    -Dverbose=true

如果失敗了,那麽你知道某些東西丟失了,無法解決,這基本上就是你想知道的。但是你也丟失了它,所以如果對你很重要,請備份你的存儲庫。

轉載註明原文: 如何防止maven解決本地存儲庫中的依賴關系