IntelliJ?IDEA?2023.1.4?無法刷新Maven項(xiàng)目模塊的問題及解決方法
這個(gè)問題是 2023 年 7 月 26 日遇到的,當(dāng)時(shí)還是 IDEA 2023.1.4,結(jié)果文章還沒寫完,7 月 27 日自動(dòng)給更新了 IDEA 2023.2。問題估計(jì)解決了。所以,本文就簡單提一下 IDEA 自身報(bào)錯(cuò)的排查方法。
規(guī)避/解決方式
先說問題怎么處理:
IDEA 設(shè)置從 Maven wrapper 改為使用內(nèi)置 Maven。
排查步驟
Maven 項(xiàng)目模塊調(diào)整后,IDEA 沒有正確識(shí)別新模塊
項(xiàng)目的 Maven 模塊有一些調(diào)整,fixture 下新增了一個(gè) database 模塊。按理說,平時(shí) IDEA 會(huì)自動(dòng)識(shí)別新模塊并自動(dòng)移除被刪除的模塊。但是,新增的 database 模塊一直沒有被加入源碼,被刪除的模塊仍然在模塊列表里。
使用 Maven 命令 install 正常,但 IDEA 構(gòu)建項(xiàng)目會(huì)發(fā)生找不到包、類等編譯錯(cuò)誤。
檢查 database 模塊的 pom.xml 文件,里面沒有發(fā)現(xiàn)錯(cuò)誤。(不然 Maven install 執(zhí)行也會(huì)出問題)
IDEA 嘗試執(zhí)行 Reload All Maven Projects
執(zhí)行后問題沒有解決,但在 Build 窗口中看到報(bào)了一個(gè)錯(cuò)誤:
這個(gè)錯(cuò)誤沒有任何詳細(xì)信息。
嘗試過清除緩存等手段均無法解決問題。
既然 IDEA 報(bào)錯(cuò)了,問題還沒解決,要想辦法知道具體報(bào)的是什么錯(cuò)。
檢查 IDEA 日志
找 IDEA 日志的方式有很多,可以在 Help 菜單中直接打開,也可以通過 Actions 窗口導(dǎo)航。
Linux 下可以直接 tail IDEA log,其他平臺(tái)可能需要手動(dòng)打開 IDEA 日志文件。
搜索 Build 窗口中拋出的異常 java.lang.reflect.InvocationTargetException
,在日志中發(fā)現(xiàn)了完整信息:
2023-07-26 16:31:47,659 [ 59616] INFO - #o.j.i.m.p.MavenProjectsProcessor - [maven import] MavenProjectsProcessorReadingTask took 3303ms
2023-07-26 16:31:47,765 [ 59722] WARN - #o.j.i.maven - java.lang.reflect.InvocationTargetException
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at org.jetbrains.idea.maven.server.MavenRemoteObject.wrapToSerializableRuntimeException(MavenRemoteObject.java:28)
at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.<init>(Maven3XServerEmbedder.java:239)
at org.jetbrains.idea.maven.server.Maven36ServerEmbedderImpl.<init>(Maven36ServerEmbedderImpl.java:8)
at org.jetbrains.idea.maven.server.Maven36ServerImpl.createEmbedder(Maven36ServerImpl.java:22)
# 省略部分鏈路
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:568)
at org.jetbrains.idea.maven.server.Maven3XServerEmbedder.<init>(Maven3XServerEmbedder.java:229)
# 省略部分鏈路
at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:704)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
... 1 more
Caused by: java.io.FileNotFoundException: The specified global settings file does not exist: /home/wuweijie/conf/settings.xml
at org.apache.maven.cli.configuration.SettingsXmlConfigurationProcessor.process(SettingsXmlConfigurationProcessor.java:117)
at org.apache.maven.cli.MavenCli.configure(MavenCli.java:1169)
at org.apache.maven.cli.MavenCli.loadCoreExtensions(MavenCli.java:758)
at org.apache.maven.cli.MavenCli.container(MavenCli.java:633)
... 24 more
發(fā)現(xiàn)錯(cuò)誤原因可能是 Maven 嘗試在路徑 /home/wuweijie/conf/settings.xml
讀取配置文件,但這個(gè)路徑 conf
目錄并不存在,而且我也從來沒有在 .m2
目錄以外的地方放置過任何 Maven 配置。
檢查 Maven 配置
配置文件沒有指定。
雖然勾選了使用 .mvn/maven.confg
,但這個(gè)路徑文件也不存在。
所以 IDEA 到底是從哪里弄來了一個(gè)不存在的路徑?
檢索 IDEA 的 YouTrack(類似 GitHub Issues)
發(fā)現(xiàn)確實(shí)有人反饋了同樣的問題,已經(jīng)在 2023.1.5 和 2023.2 解決了。
小結(jié)
其實(shí)查 IDEA 本身的問題和平時(shí)沒有太大的差異:
- 查日志,找出具體原因;
- 查 issues,看是否有同樣問題或解決方案;沒有類似的問題就提個(gè)新的 issue。
- 感興趣的可以自己深入排查。
到此這篇關(guān)于IntelliJ IDEA 2023.1.4 無法刷新項(xiàng)目 Maven 模塊的問題為例的文章就介紹到這了,更多相關(guān)IDEA 自身報(bào)錯(cuò)排查方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 2023最新版本idea用maven新建web項(xiàng)目(親測(cè)不報(bào)錯(cuò))
- IDEA創(chuàng)建Maven項(xiàng)目后報(bào)錯(cuò)不出現(xiàn)src文件夾的情況解決
- 解決idea2020.2遇到pom.xml文件報(bào)錯(cuò)maven插件tomcat7的問題
- IDEA配置maven環(huán)境的詳細(xì)教程(Unable to import maven project報(bào)錯(cuò)問題的解決)
- 關(guān)于IDEA2020.1新建項(xiàng)目maven PKIX 報(bào)錯(cuò)問題解決方法
- 解決IDEA中maven導(dǎo)入jar包一直報(bào)錯(cuò)問題
相關(guān)文章
Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)IO版本
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)IO版本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04SpringBoot2零基礎(chǔ)到精通之?dāng)?shù)據(jù)庫專項(xiàng)精講
SpringBoot是一種整合Spring技術(shù)棧的方式(或者說是框架),同時(shí)也是簡化Spring的一種快速開發(fā)的腳手架,本篇我們來學(xué)習(xí)如何連接數(shù)據(jù)庫進(jìn)行操作2022-03-03SpringBoot+MinIO+KKFileView實(shí)現(xiàn)文件預(yù)覽功能
本文主要介紹了使用SpringBoot、MinIO和KKFileView實(shí)現(xiàn)文件上傳和在線預(yù)覽功能,通過配置MinIO存儲(chǔ)文件,并使用KKFileView生成預(yù)覽鏈接,感興趣的可以了解一下2024-11-11關(guān)于Spring?@Transactional事務(wù)傳播機(jī)制詳解
我們?nèi)粘9ぷ髦袠O少使用事務(wù)傳播級(jí)別,單純只是使用事務(wù)和rollbackfor拋出異常來解決事務(wù)問題,但其實(shí)我們很多時(shí)候使用的是不正確的,或者說會(huì)造成事務(wù)粒度過大,本文詳解一下事務(wù)傳播級(jí)別,也讓自己更好地處理事務(wù)問題,需要的朋友可以參考下2023-08-08springboot整合swagger3報(bào)Unable to infer base&nbs
這篇文章主要介紹了springboot整合swagger3報(bào)Unable to infer base url錯(cuò)誤問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05為了多次讀取ServletInputStream引發(fā)的一系列問題
這篇文章主要介紹了為了多次讀取ServletInputStream引發(fā)的一系列問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10Java使用Kaptcha實(shí)現(xiàn)簡單的驗(yàn)證碼生成器
這篇文章主要為大家詳細(xì)介紹了Java如何使用Kaptcha實(shí)現(xiàn)簡單的驗(yàn)證碼生成器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考下2024-02-02