最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

IntelliJ?IDEA?無(wú)法識(shí)別?Maven?SNAPSHOT?依賴(lài)但?Maven?編譯正常的根本原因

 更新時(shí)間:2026年05月13日 08:47:59   作者:無(wú)所事事O_o  
本文描述了在IntelliJ IDEA中使用Maven SNAPSHOT依賴(lài)時(shí)遇到的編譯正常但I(xiàn)DEA中無(wú)法識(shí)別的問(wèn)題,根本原因在于Maven緩存機(jī)制及IDEA的項(xiàng)目模型緩存未更新,解決方案包括手動(dòng)修改libraries.xml文件或觸發(fā)MavenReload

問(wèn)題現(xiàn)象

項(xiàng)目中引入了一個(gè) SNAPSHOT 版本的 Maven 依賴(lài)(如 com.example:my-service-client:1.0.0-SNAPSHOT),在 IntelliJ IDEA 中出現(xiàn)以下情況:

  • 使用 mvn compile 或 mvn package 編譯完全正常
  • IDEA 中對(duì)應(yīng)的類(lèi)無(wú)法識(shí)別,顯示紅色報(bào)錯(cuò)
  • 打開(kāi) IDEA 的 Project Structure > Libraries,可以看到該依賴(lài)的路徑指向一個(gè)不存在的 JAR 文件

例如,IDEA 中顯示的路徑為:

~/.m2/repository/com/example/my-service-client/1.0.0-SNAPSHOT/
    my-service-client-1.0.0-20240101.100000-1.jar   ← 文件不存在,顯示紅色

而本地 Maven 倉(cāng)庫(kù)中實(shí)際存在的文件是:

~/.m2/repository/com/example/my-service-client/1.0.0-SNAPSHOT/
    my-service-client-1.0.0-20240201.120000-2.jar   ← 實(shí)際文件

嘗試過(guò) Invalidate Caches / Restart,問(wèn)題依然存在。

根本原因

IDEA 的 Maven 緩存分兩層

緩存層路徑清除方式
索引緩存(文件搜索、符號(hào)索引)~/Library/Caches/JetBrains/<版本>/index/Invalidate Caches
項(xiàng)目模型緩存(Maven 依賴(lài)解析結(jié)果)~/Library/Caches/JetBrains/<版本>/projects/<項(xiàng)目>.*/external_build_system/僅 Maven Reload 時(shí)重建

Invalidate Caches 清除的是索引緩存,不會(huì)觸碰 external_build_system 目錄。

為什么 Maven Reload 沒(méi)有修復(fù)它

SNAPSHOT 依賴(lài)每次構(gòu)建可能產(chǎn)生新的時(shí)間戳版本(如從 -1 升級(jí)到 -2)。當(dāng)遠(yuǎn)程倉(cāng)庫(kù)推送了新版本、本地 Maven 也完成了更新后,舊的帶時(shí)間戳 JAR 文件(-1.jar)已被替換。

此時(shí)若觸發(fā) IDEA 的 Maven Reload:

  • IDEA 嘗試讀取舊路徑的 JAR 文件 → 文件不存在,Reload 出錯(cuò)
  • external_build_system/project/libraries.xml 沒(méi)有被正確寫(xiě)入新值
  • 緩存停留在舊的時(shí)間戳版本,循環(huán)報(bào)錯(cuò)

解決方案

方法一:直接修改項(xiàng)目模型緩存文件(推薦)

第一步:確認(rèn)本地倉(cāng)庫(kù)中實(shí)際存在的 JAR 文件名:

ls ~/.m2/repository/com/<groupId>/<artifactId>/<version>/

記錄實(shí)際存在的時(shí)間戳版本號(hào),例如 1.0.0-20240201.120000-2。

第二步:找到 IDEA 對(duì)應(yīng)項(xiàng)目的緩存目錄:

~/Library/Caches/JetBrains/<IDEA版本>/projects/

在該目錄下找到對(duì)應(yīng)的項(xiàng)目目錄(格式為 <項(xiàng)目名>.<hash>),進(jìn)入:

<項(xiàng)目名>.<hash>/external_build_system/project/libraries.xml

第三步:用文本編輯器打開(kāi) libraries.xml,搜索包名,將舊時(shí)間戳版本號(hào)全部替換為新版本號(hào):

<!-- 修改前 -->
<properties version="1.0.0-20240101.100000-1" ... />
<root url="jar://.../my-service-client-1.0.0-20240101.100000-1.jar!/" />
<!-- 修改后 -->
<properties version="1.0.0-20240201.120000-2" ... />
<root url="jar://.../my-service-client-1.0.0-20240201.120000-2.jar!/" />

第四步:重新打開(kāi) IDEA,問(wèn)題解決。無(wú)需關(guān)閉 IDEA 也可直接修改,修改后執(zhí)行一次 Maven > Reload All Maven Projects 即可生效。

方法二:命令行一鍵替換(macOS/Linux)

確認(rèn)新舊時(shí)間戳版本號(hào)后,直接用 sed 替換:

# 找到項(xiàng)目緩存目錄(替換 <IDEA版本> 和 <項(xiàng)目名.hash>)
LIBS=~/Library/Caches/JetBrains/<IDEA版本>/projects/<項(xiàng)目名.hash>/external_build_system/project/libraries.xml
# 替換舊時(shí)間戳為新時(shí)間戳
sed -i '' 's/1\.0\.0-20240101\.100000-1/1.0.0-20240201.120000-2/g' "$LIBS"

BASH 復(fù)制 全屏

為什么其他依賴(lài)沒(méi)有這個(gè)問(wèn)題

  • Release 版本:文件名固定,不存在時(shí)間戳變化,緩存永久有效
  • 其他 SNAPSHOT 依賴(lài):如果在上次成功的 Maven Reload 之后沒(méi)有發(fā)生版本更新,緩存中的路徑就是有效的,不會(huì)觸發(fā)此問(wèn)題

該問(wèn)題的觸發(fā)條件比較特殊:SNAPSHOT 依賴(lài)在本地已更新到新時(shí)間戳版本,但 IDEA 尚未完成一次成功的 Maven Reload,導(dǎo)致緩存停留在舊狀態(tài)且無(wú)法自愈。

總結(jié)

Maven CLIIntelliJ IDEA
解析 SNAPSHOT 依賴(lài)每次讀取 maven-metadata-local.xml,始終準(zhǔn)確使用 external_build_system 緩存,僅 Reload 時(shí)更新
Invalidate Caches 能否修復(fù)不能,該目錄不在清除范圍內(nèi)
修復(fù)方式無(wú)需修復(fù)手動(dòng)修改 libraries.xml 或觸發(fā)成功的 Maven Reload

到此這篇關(guān)于IntelliJ IDEA 無(wú)法識(shí)別 Maven SNAPSHOT 依賴(lài),但 Maven 編譯正常的文章就介紹到這了,更多相關(guān)IntelliJ IDEA 無(wú)法識(shí)別 Maven SNAPSHOT 依賴(lài),但 Maven 編譯正常內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MyBatis實(shí)現(xiàn)動(dòng)態(tài)SQL更新的代碼示例

    MyBatis實(shí)現(xiàn)動(dòng)態(tài)SQL更新的代碼示例

    本文博小編將帶領(lǐng)大家學(xué)習(xí)如何利用 MyBatis 攔截器機(jī)制來(lái)優(yōu)雅的實(shí)現(xiàn)這個(gè)需求,文中通過(guò)代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-07-07
  • Java實(shí)現(xiàn)銳化圖片并保存功能(附源碼)

    Java實(shí)現(xiàn)銳化圖片并保存功能(附源碼)

    在圖像處理領(lǐng)域,銳化(Sharpening)?是一種常見(jiàn)的操作,用于增強(qiáng)圖像中邊緣和細(xì)節(jié),使圖像看起來(lái)更清晰,下面小編就來(lái)介紹一下如何使用Java?SE?原生?API實(shí)現(xiàn)對(duì)圖像的銳化處理并保存為常見(jiàn)格式文件吧
    2025-05-05
  • springboot讀取nacos配置文件的實(shí)現(xiàn)

    springboot讀取nacos配置文件的實(shí)現(xiàn)

    SpringBoot注冊(cè)服務(wù)到Nacos上,由Nacos來(lái)做服務(wù)的管理,本文主要介紹了springboot讀取nacos配置文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • idea運(yùn)行main方法或Test避免編譯整個(gè)應(yīng)用的實(shí)現(xiàn)方法

    idea運(yùn)行main方法或Test避免編譯整個(gè)應(yīng)用的實(shí)現(xiàn)方法

    這篇文章主要介紹了idea運(yùn)行main方法或Test避免編譯整個(gè)應(yīng)用的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Mybatis-Plus自動(dòng)填充的實(shí)現(xiàn)示例

    Mybatis-Plus自動(dòng)填充的實(shí)現(xiàn)示例

    這篇文章主要介紹了Mybatis-Plus自動(dòng)填充的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 基于resty?security的Api權(quán)限控制與事務(wù)支持

    基于resty?security的Api權(quán)限控制與事務(wù)支持

    這篇文章主要為大家介紹了基于resty?security的Api權(quán)限控制與事務(wù)支持讓數(shù)據(jù)操作處于事務(wù)控制下,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-03-03
  • Idea中使用Git實(shí)現(xiàn)方式

    Idea中使用Git實(shí)現(xiàn)方式

    本文總結(jié)了在Idea中配置Git、創(chuàng)建遠(yuǎn)程倉(cāng)庫(kù)、弱化了暫存區(qū)等內(nèi)容,詳細(xì)介紹了復(fù)制倉(cāng)庫(kù)鏈接、創(chuàng)建本地倉(cāng)庫(kù)、提交、查看提交記錄、推送、克隆、創(chuàng)建分支、切換、刪除、創(chuàng)建、重命名分支等操作
    2026-05-05
  • 詳解使用Java代碼讀取并比較本地兩個(gè)txt文件區(qū)別

    詳解使用Java代碼讀取并比較本地兩個(gè)txt文件區(qū)別

    這篇文章主要為大家介紹了使用Java代碼讀取并比較本地兩個(gè)txt文件區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • .NET Core使用SignalR實(shí)現(xiàn)實(shí)時(shí)通訊的示例代碼

    .NET Core使用SignalR實(shí)現(xiàn)實(shí)時(shí)通訊的示例代碼

    SignalR是一個(gè)ASP.NETCore庫(kù),用于在客戶(hù)端和服務(wù)器之間實(shí)現(xiàn)實(shí)時(shí)通訊,本文主要介紹了.NETCore中使用SignalR實(shí)現(xiàn)實(shí)時(shí)通訊,感興趣的可以了解一下
    2024-11-11
  • Spring Security中用JWT退出登錄時(shí)遇到的坑

    Spring Security中用JWT退出登錄時(shí)遇到的坑

    使用了JWT后,每次請(qǐng)求都要攜帶 Bearer Token 并且被專(zhuān)門(mén)的過(guò)濾器攔截解析之后才能將用戶(hù)認(rèn)證信息保存到 SecurityContext 中去,接下來(lái)通過(guò)本文給大家介紹Spring Security中用JWT退出登錄時(shí)遇到的坑,感興趣的朋友一起看看吧
    2021-10-10

最新評(píng)論

当雄县| 宁安市| 沁源县| 县级市| 宁远县| 蚌埠市| 荔浦县| 巴林右旗| 曲阜市| 建水县| 红安县| 灵丘县| 观塘区| 黄石市| 阿克| 大足县| 宁安市| 阿荣旗| 明光市| 武定县| 和顺县| 南雄市| 南丰县| 贞丰县| 萨嘎县| 镇宁| 东山县| 视频| 东阳市| 柯坪县| 洛隆县| 高台县| 水富县| 商都县| 高唐县| 太保市| 澄城县| 绥江县| 邵阳县| 黎城县| 宜章县|