【Maven】maven _remote.repositories 導致的local repository有依賴仍報找不到依賴問題

引言

在build工程時,發現有依賴明明在local repository路徑~/.m2/repository/org/apache/hadoop/hadoop-build-tools/3.1.1.3.1.0.0-78下已經有了,卻仍然報找不到依賴
在這裏插入圖片描述
開始看到這個錯誤思考:

  1. 報的是https://repo.maven.apache.org/maven2找不到這個依賴,去該倉庫確實沒有,要添加第三方倉庫
  2. 添加完有該包的倉庫後,依然報這個錯誤
  3. 後來搜反正就是要麼讓在settings中添加profile,要麼在pom中添加repository,要麼改settings中mirror配置都不好使
  4. 後來注意到倉庫路徑下都有一個_remote.repositories,所以就把該依賴倉庫路徑下的_remote.repositories刪除,再重新執行就好了

_remote.repositories的作用

內容來源:https://stackoverflow.com/questions/16866978/maven-cant-find-my-local-artifacts

在Maven 3.0.x之前,Maven不會跟蹤本地存儲庫中文件的來源。

這可能會導致構建問題,尤其是如果您要構建的東西列出了(現在已死)非常乏味的java.net2存儲庫...該存儲庫不僅更改了已發佈的工件(極端的壞習慣),而且還在以下位置發佈了工件與中央工件相同的座標,但內容不同(令人難以置信的邪惡)

因此,您可以進行構建工作(因爲您從中央有commons-io:commons-io:2.0)擦除了本地存儲庫,並且構建失敗了(因爲您現在從java.net2獲得了commons-io:commons-io:2.0是完全不同的工件,在pom中具有不同的依賴性),反之亦然。

上面的情況是使用Maven存儲庫管理器的驅動程序之一,因爲它使您可以控制向下遊公開的存儲庫的子集以及從多個存儲庫解析工件的順序(通常稱爲路由規則)。

無論如何,當maven切換到Aether作爲存儲庫訪問層時,便決定開始跟蹤工件的來源。

因此,對於Maven 3.0.x,當從存儲庫下載工件時,maven會留下_maven.repositories文件來記錄從中解析文件的位置。如果正在構建項目,並且有效的存儲庫列表不包含解析工件的位置,則Maven會確定該工件好像不在緩存中,並將嘗試重新解析該工件。 ..

雖然在3.0.x中存在許多錯誤...最關鍵的是如何處理脫機...即:當脫機時,maven 3.0.x認爲沒有存儲庫,因此總是會發現與_maven不匹配。倉庫文件!!!

Maven 3.0.x的解決方法是從本地緩存中刪除這些文件,例如

$find 〜/.m2/repository -name _maven.repositories -exec rm -v {} \;
副作用是您失去了Maven 3.0.x試圖提供的保護。

好消息是,Maven 3.1將具有必需的修復程序(如果我們能夠共同行動併發布版本的話)

在脫機模式下,使用Maven 3.1時,_maven.repositories文件被(半)忽略,並且還有一個選項可以忽略該文件以進行聯機生成(稱爲舊版模式)

目前(2013年6月1日)正在進行第四次削減符合法律和測試要求的發行版的嘗試...因此,假設第四次是幸運的,我希望看到3.1.0-alpha -1在3-4天的時間內發佈了...但是,鑑於我們要給3.1中的更改​​留出足夠的時間來浸泡以確保使用構建不會中斷(API發生了更改(由偶然的情況-插件作者依賴的站點和依賴項插件需要API(即使他們不應該使用),因此有潛力,儘管我們認爲我們已經涵蓋了所有基礎)

這裏邊兒內容有點早哈2013.6.1,而我現在用的是maven 3.5版本,依然會有這個問題,文件名字也變成了_remote.repository,不管了反正暫時解決了問題。

搜到的另一文章介紹_remote.repository,但是感覺哪裏不太對:https://blog.csdn.net/lovepeacee/article/details/103094247

maven相關知識鏈接

Maven倉庫理解和優先級:https://swenfang.github.io/2018/06/03/Maven-Priority/
maven全局配置文件settings.xml詳解:https://www.cnblogs.com/jingmoxukong/p/6050172.html

發佈了84 篇原創文章 · 獲贊 12 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章