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

IntelliJ?IDEA?無法識別?Maven?SNAPSHOT?依賴但?Maven?編譯正常的根本原因

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

問題現(xiàn)象

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

  • 使用 mvn compile 或 mvn package 編譯完全正常
  • IDEA 中對應的類無法識別,顯示紅色報錯
  • 打開 IDEA 的 Project Structure > Libraries,可以看到該依賴的路徑指向一個不存在的 JAR 文件

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

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

而本地 Maven 倉庫中實際存在的文件是:

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

嘗試過 Invalidate Caches / Restart,問題依然存在。

根本原因

IDEA 的 Maven 緩存分兩層

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

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

為什么 Maven Reload 沒有修復它

SNAPSHOT 依賴每次構建可能產(chǎn)生新的時間戳版本(如從 -1 升級到 -2)。當遠程倉庫推送了新版本、本地 Maven 也完成了更新后,舊的帶時間戳 JAR 文件(-1.jar)已被替換。

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

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

解決方案

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

第一步:確認本地倉庫中實際存在的 JAR 文件名:

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

記錄實際存在的時間戳版本號,例如 1.0.0-20240201.120000-2。

第二步:找到 IDEA 對應項目的緩存目錄:

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

在該目錄下找到對應的項目目錄(格式為 <項目名>.<hash>),進入:

<項目名>.<hash>/external_build_system/project/libraries.xml

第三步:用文本編輯器打開 libraries.xml,搜索包名,將舊時間戳版本號全部替換為新版本號:

<!-- 修改前 -->
<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!/" />

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

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

確認新舊時間戳版本號后,直接用 sed 替換:

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

BASH 復制 全屏

為什么其他依賴沒有這個問題

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

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

總結

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

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

相關文章

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

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

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

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

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

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

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

    idea運行main方法或Test避免編譯整個應用的實現(xiàn)方法

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

    Mybatis-Plus自動填充的實現(xiàn)示例

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

    基于resty?security的Api權限控制與事務支持

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

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

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

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

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

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

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

    Spring Security中用JWT退出登錄時遇到的坑

    使用了JWT后,每次請求都要攜帶 Bearer Token 并且被專門的過濾器攔截解析之后才能將用戶認證信息保存到 SecurityContext 中去,接下來通過本文給大家介紹Spring Security中用JWT退出登錄時遇到的坑,感興趣的朋友一起看看吧
    2021-10-10

最新評論

青田县| 兰坪| 桐梓县| 胶南市| 广宗县| 会理县| 遂昌县| 武平县| 三江| 周至县| 高碑店市| 榆林市| 长阳| 万宁市| 房产| 通城县| 芷江| 闽侯县| 德令哈市| 阿巴嘎旗| 曲阜市| 辽中县| 固阳县| 陈巴尔虎旗| 北海市| 昭苏县| 许昌县| 芒康县| 九龙坡区| 灵川县| 吴堡县| 石棉县| 宁城县| 马公市| 嘉祥县| 黔西县| 合阳县| 东阿县| 宾川县| 宝丰县| 达尔|