idea 與 maven 使用過程中遇到的問題及解決方案
1. maven項目導入idea報ComponentLookupException異常
1.1. 問題描述
最近將IDEA 升級到 IntelliJ IDEA 2021.3.2,在將maven項目導入IDEA後,maven build時報如下異常:
org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method <init>()V not found
at org.jetbrains.idea.maven.server.embedder.CustomModelValidator.<init>(Unknown Source)
while locating org.jetbrains.idea.maven.server.embedder.CustomModelValidator
at ClassRealm[maven.ext, parent: ClassRealm[plexus.core, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
while locating org.apache.maven.model.validation.ModelValidator annotated with @com.google.inject.name.Named(value=ide)
1 error
role: org.apache.maven.model.validation.ModelValidator
roleHint: ide
1.2.解決方案
這個問題是IntelliJ IDEA 2021.3.2 不兼容導致的。 我使用的Maven版本是3.8.3, 將Maven版本降至3.8.1 或 使用IDEA Bundled(Maven3)即可解決。
Maven 3.x 下載地址
2. IDEA無法加載maven本地倉庫的文件
2.1.問題描述
如果公司 Nexus私服
裡面沒有對應的依賴jar包,但本地倉庫有_remote.repositories文件,
這種情況下IDEA無法加載本地的jar包,導致MAVEN依賴變成紅色
_remote.repositories 內容類似如下:
2.2.解決方案
查找並刪除所有_remote.repositories文件 clear_remote.repositories.bat
set REPOSITORY_PATH=D:\maven\repository echo is finding all _remote.repositories file ... for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*_remote.repositories*"') do ( del /s /q %%i ) echo delete all _remote.repositories has finished pause
3.刪除maven下載失敗的jar包
3.1. 問題描述
maven針對更新失敗的依賴,在對應的文件夾中都生成瞭lastUpdated後綴結尾的文件,這些文件有時會導致IDEA不能正常加載這些本地依賴。
3.2.解決方案
查找並刪除所有包含lastUpdated的文件 clear_lastUpdated.bat
set REPOSITORY_PATH=D:\maven\repository echo is finding all lastUpdated file ... for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*lastUpdated*"') do ( del /s /q %%i ) echo delete all lastUpdated has finished pause
4. 刪除_maven.repositories文件
4.1.問題描述
Maven tries to update your jar from the old location (as saved in _maven.repositories) and fails. The presumtion here is that the same aftifact on a different remote repository might be different.
Maven試圖從舊位置(保存在_maven.repositories中)更新jar,但失敗瞭。這裡的假設是,相同的aftifact 在不同的遠程存儲庫上可能是不同的。
有時此文件會導致jar更新或加載失敗
4.2.解決方案
查找並刪除所有包含_maven.repositories的文件 clear_maven.repositories.bat
set REPOSITORY_PATH=D:\maven\repository echo is finding all _maven.repositories file ... for /f "delims=" %%i in ('dir /b /s "%REPOSITORY_PATH%\*_maven.repositories*"') do ( del /s /q %%i ) echo delete all _maven.repositories has finished pause
到此這篇關於idea 與 maven 使用過程中遇到的坑的文章就介紹到這瞭,更多相關idea maven使用內容請搜索LevelAH以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持LevelAH!
推薦閱讀:
- IDEA設置maven修改settings.xml配置文件無法加載倉庫的解決方案
- 帶你走進Maven的大門-最全Maven配置及集成idea工具總結
- MAVEN的安裝配置與IDEA整合超詳細教程
- idea2020.3.3集成maven及遇到的坑(推薦)
- 在CentOS7(有圖形化界面)上安裝maven和idea的詳細教程