成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

悲?。DEA 突然找不到類了?

開發 前端
我們本地使用 IDEA 運行 maven 項目的時候,有時候運氣不好,就會遇到某些 maven 依賴無法正常找到、導入。這就會導致 IDEA 構建項目的時候爆出一堆醒目的紅色 Error。

 [[414013]]

本文轉載自微信公眾號「小黑十一點半」,作者樓下小黑哥 。轉載本文請聯系小黑十一點半公眾號。

Hello,大家好,我是樓下小黑哥~

我們本地使用 IDEA 運行 maven 項目的時候,有時候運氣不好,就會遇到某些 maven 依賴無法正常找到、導入。這就會導致 IDEA 構建項目的時候爆出一堆醒目的紅色 Error。

圖片來自網絡

那最近小黑哥新拉取一個項目源碼,本地運行項目,又碰到這種情況。按照以前的解決經驗,搗鼓了一下,發現沒辦法解決。于是研究了一下午,終于解決這個問題??。

吐槽一下,剛開始一度以為是這個項目有問題,找了一個同事,發現他的電腦是卻可以正常運行這個項目。

那今天這篇的文章,總結一下 IDEA 運行 maven 項目找不到相關依賴報錯的問題原因以及解決辦法。

網絡問題,無法下載 maven 依賴

Maven 默認的中央倉庫地址為 http://search.maven.org/#browse,那這是一個外網的地址。

而我們國內訪問外網地址,網絡速度不僅慢,網絡質量還差。這就導致了maven 依賴下載速度過慢,有時候下載還可能會失敗。

maven 依賴下載失敗,這就會導致 IDEA 找不到相關依賴。

那這個問題解決辦法也比較簡單,我們可以通過設置鏡像(mirrors)地址解決。

打開我們本地 maven 配置文件,默認地址如下:${user.home}/.m2/settings.xml,然后找到 mirrors節點,在這下面添加以下配置:

  1. <mirrors> 
  2.     <mirror> 
  3.       <id>alimaven</id> 
  4.       <name>aliyun maven</name
  5.       <url>http://maven.aliyun.com/nexus/content/groups/public/</url> 
  6.       <mirrorOf>central</mirrorOf>         
  7.     </mirror> 
  8. </mirrors> 

lastUpdated 文件導致依賴無法正常導入

當你更新鏡像地址之后,有可能還會碰到 maven 依賴無法導入,那恭喜你碰到第二個問題了。

maven 依賴下載的時候,如果碰到網絡較差,依賴下載失敗,maven 本地將會生成 lastUpdated 為后綴的文件。

那正常的 maven 依賴如下

lastUpdated 為后綴的文件作用如下:

只要 lastUpdated 文件存在,maven 依賴將不會重新下載,所以做簡單的方法就是,刪除 lastUpdated 文件,重新刷新下載即可。

這里提供一鍵刪除 lastUpdated 文件腳本(macos)

  1. # 這里寫你的倉庫路徑 
  2. REPOSITORY_PATH=~/.m2/repository 
  3. echo 正在搜索... 
  4. find $REPOSITORY_PATH -name "*lastUpdated*" | xargs rm -fr 
  5. echo 搜索完 

windows 腳本如下:

  1. # windows腳本 
  2. @echo off 
  3. rem create by NettQun 
  4.    
  5. rem 這里寫你的倉庫路徑 
  6. set REPOSITORY_PATH=D:\Java\maven-repository\maven-aliyun\repository 
  7. rem 正在搜索... 
  8. for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do ( 
  9.     echo %%i 
  10.     del /s /q "%%i" 
  11. rem 搜索完畢 
  12. pause 

maven 依賴沖突,引用錯誤

前兩個問題主要跟本地網絡有比較大的關系,那這個問題,主要是因為 maven 特性導致。

那 maven 有一個依賴傳遞的特性,如果 A 依賴 B,而 B 依賴 C,那么 C 這個依賴就會通過 B 間接傳遞給 A。

那如果有多個間接依賴存在,但是彼此版本卻不一樣,這就會導致依賴沖突。

如上所示,如果 A 應用 使用了 E2.0 新增某些類或者方法,那這個時候由于依賴沖突,A 實際上間接依賴的是 E1.0,這就導致 IDEA 編譯的時候找不到 E 新增這些類或方法。

那這個問題解決辦法,也比較簡單,有沖突,我們就直接解決沖突就可以了。

我們可以在 IDEA 中安裝一個 Maven Helper 插件,然后打開 pom 文件,點擊 Dependency Analyzer 選項,在這里面選中 Conflicts 按鈕,就可以看到當前所有沖突的依賴包。

選中其中一個依賴包,就可以在右側看到所有沖突依賴包的版本。選中其中一個版本,右鍵選中 Exclude 即可。

上面的辦法我們通過排除其他間接依賴從而解決問題。那下面還有一種解決辦法,將間接依賴轉化為直接依賴。

我們可以把間接依賴直接寫在項目 pom 文件里,這樣 maven 將會直接使用這個依賴,其他間接依賴將會失效。

maven 間接依賴異常

這個問題,就比較詭異,這也是文章剛開頭提到那個問題。

項目中依賴關系如下所示。

A 應用依賴 B ,那 B 是一個開源項目,但是公司內部對 B 進行一些修改。修改之后, B 依賴 C ,所以 A 中使用 C 依賴某些類。

那由于我本地倉庫已經下載了 B 開源版本,那當我本地拉取 A 應用源碼,那依賴關系就變成了 圖中虛線關系。

IDEA 缺失了 C 依賴,這就導致項目編譯錯誤,無法找到 C 中一些類。

那這個問題解決辦法,就是在本地倉庫找到 B 依賴,然后刪除拉取即可。

解決辦法比較簡單,關鍵我們需要找到中間這個依賴。

IDEA 本地緩存異常

最后一種情況,跟 IDEA 有比較大關系。

IDEA 之所以快,那是因為 IDEA 打開新的工程的時候,它會構建項目索引以及生成相關緩存。

那有時候,如果 IDEA 緩存被破壞,那就有可能導致 IDEA 無法識別 maven 依賴, 從而導致 IDEA 無法找到某些類。

這種情況我們需要刪除原先的緩存以及索引,等待 IDEA 重新構建緩存以及索引即可。

在 IDEA 中點擊 File/Invalidate Cached 即可。

最后

如果你如果碰到新的情況,以上幾種解決辦法都沒辦法解決,那么只能使用終極解決辦法。

重啟大法,重啟 IDEA,重啟電腦

 

責任編輯:武曉燕 來源: 小黑十一點半
相關推薦

2021-07-14 09:36:09

Jar類文件Docker

2020-05-19 13:18:45

網頁前端Web

2012-09-04 10:42:48

2020-04-10 08:03:04

分布式鎖Redlock算法流行算法

2019-04-10 08:30:53

Python機器學習工具

2015-06-01 15:11:37

數據庫update

2020-07-03 15:10:35

Java Rust 開發

2010-06-18 10:13:17

虛擬機消失

2020-09-07 08:06:46

Redis容器日志

2021-04-06 06:23:18

MVCC并發事務

2020-02-24 11:02:37

斷網網絡故障

2018-03-28 09:02:50

智慧金融

2021-04-23 13:03:12

人臉識別人工智能AI

2018-02-07 07:00:09

2018-03-28 12:33:21

滴滴高德地圖平臺

2020-11-02 08:50:49

程序員機器學習年齡

2017-12-18 12:45:41

前端高薪IT行業

2023-11-27 13:19:54

模型訓練

2021-03-16 10:21:42

互聯網工程師技術

2011-05-06 16:28:44

共享打印機
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品中文字幕在线观看 | 激情六月丁香 | 国产99久久久国产精品下药 | 婷婷综合网 | 成人在线视频看看 | 91精品国产综合久久久久蜜臀 | 午夜精品一区二区三区三上悠亚 | 国产美女h视频 | 色视频网站免费 | www.久久久久久久久久久久 | 天天操天天干天天爽 | 午夜精品一区二区三区在线观看 | 国产亚洲欧美日韩精品一区二区三区 | 高清视频一区二区三区 | 亚洲成人精品国产 | 久久精品视频91 | 精品久久精品 | 天天插天天操 | 欧美日韩国产传媒 | 天堂av中文在线 | 国产精品一区三区 | 午夜精品一区二区三区三上悠亚 | 欧美精品一区二区免费 | 91精品无人区卡一卡二卡三 | 国产精品日韩欧美一区二区三区 | 在线视频久久 | 日韩欧美一区二区三区免费观看 | 免费二区| 欧美日韩在线一区二区 | 精品一区二区三区在线观看国产 | 欧美精品一区二区三区在线 | 久久亚洲欧美日韩精品专区 | 91精品久久久久久久久 | 欧美日韩精品 | 国产精品欧美精品日韩精品 | 亚洲精品乱码久久久久v最新版 | 日韩精品成人网 | 成人性视频在线 | 一级欧美一级日韩片免费观看 | 久久久久久久国产 | 精品少妇一区二区三区日产乱码 |