如何排查 IDEA 自身报错?| 以 IntelliJ IDEA 2023.1.4 无法刷新项目 Maven 模块的问题为例

文章描述了一位开发者在IDEA中遇到的Maven项目模块识别问题,IDEA在自动更新至新版本后无法正确识别新增模块。通过检查IDEA日志,发现错误源于一个不存在的全局Maven配置文件路径。通过查阅官方YouTrack,确认该问题已在后续版本修复。解决方法包括检查Maven配置和使用IDEA的日志来定位问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题是 2023 年 7 月 26 日遇到的,当时还是 IDEA 2023.1.4,结果文章还没写完,7 月 27 日自动给更新了 IDEA 2023.2。问题估计解决了。
所以,本文就简单提一下 IDEA 自身报错的排查方法。

规避/解决方式

先说问题怎么处理:

IDEA 设置从 Maven wrapper 改为使用内置 Maven。
在这里插入图片描述

排查步骤

Maven 项目模块调整后,IDEA 没有正确识别新模块

项目的 Maven 模块有一些调整,fixture 下新增了一个 database 模块。按理说,平时 IDEA 会自动识别新模块并自动移除被删除的模块。但是,新增的 database 模块一直没有被加入源码,被删除的模块仍然在模块列表里。
在这里插入图片描述

使用 Maven 命令 install 正常,但 IDEA 构建项目会发生找不到包、类等编译错误。
在这里插入图片描述
检查 database 模块的 pom.xml 文件,里面没有发现错误。(不然 Maven install 执行也会出问题)

IDEA 尝试执行 Reload All Maven Projects
在这里插入图片描述

执行后问题没有解决,但在 Build 窗口中看到报了一个错误:

在这里插入图片描述
这个错误没有任何详细信息。

尝试过清除缓存等手段均无法解决问题。
在这里插入图片描述

既然 IDEA 报错了,问题还没解决,要想办法知道具体报的是什么错。

检查 IDEA 日志

找 IDEA 日志的方式有很多,可以在 Help 菜单中直接打开,也可以通过 Actions 窗口导航。
在这里插入图片描述

Linux 下可以直接 tail IDEA log,其他平台可能需要手动打开 IDEA 日志文件。
在这里插入图片描述

搜索 Build 窗口中抛出的异常 java.lang.reflect.InvocationTargetException,在日志中发现了完整信息:

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

发现错误原因可能是 Maven 尝试在路径 /home/wuweijie/conf/settings.xml 读取配置文件,但这个路径 conf 目录并不存在,而且我也从来没有在 .m2 目录以外的地方放置过任何 Maven 配置。

检查 Maven 配置

配置文件没有指定。
在这里插入图片描述

虽然勾选了使用 .mvn/maven.confg,但这个路径文件也不存在。
在这里插入图片描述

所以 IDEA 到底是从哪里弄来了一个不存在的路径?

检索 IDEA 的 YouTrack(类似 GitHub Issues)

发现确实有人反馈了同样的问题,已经在 2023.1.5 和 2023.2 解决了。

https://youtrack.jetbrains.com/issue/IDEA-322338/maven-reimport-fails-with-java.io.FileNotFoundException-The-specified-global-settings-file-does-not-exist-conf-settings.xml

在这里插入图片描述

小结

其实查 IDEA 本身的问题和平时没有太大的差异:

  • 查日志,找出具体原因;
  • 查 issues,看是否有同样问题或解决方案;没有类似的问题就提个新的 issue。
  • 感兴趣的可以自己深入排查。
<think>好的,用户问的是如何在IntelliJ IDEA 2023.1中创建Maven Web项目。首先,我需要回忆一下创建Maven Web项目的步骤。记得通常有两种方法:一种是通过Maven原型生成,另一种是手动创建并配置。不过IDEA可能已经集成了更简便的方式。 首先,启动IDEA后,用户应该选择“New Project”或者在欢迎界面点击“Create New Project”。然后,在新建项目的向导中,选择Maven作为项目类型,并确保选中了“Create from archetype”选项,选择maven-archetype-webapp这个原型。这一步可能需要输入groupId、artifactId等信息,比如com.example和my-webapp这样的示名称。 接下来,用户需要指定项目名称和保存位置,然后等待Maven下载依赖并生成项目结构。生成后,可能需要检查项目的目录结构是否正确,比如src/main/webapp是否存在,以及pom.xml是否配置正确。有时候可能需要手动调整pom.xml中的打包方式为war,以及添加必要的依赖,比如Servlet API或者其他框架的依赖。 另外,用户可能还需要配置项目的SDK和Maven设置,比如本地仓库的位置和settings.xml文件。如果用户没有安装Tomcat或者其他服务器,可能需要指导他们如何在IDEA中配置服务器,以便部署和运行Web应用。 还要注意,有些时候IDEA的版本不同可能会导致选项的位置有所变化,但2023.1版本应该不会有太大变动。需要确认步骤是否适用于这个版本,是否有新的特性或变化需要说明。比如,是否在创建项目时自动配置了web.xml,或者是否需要手动添加。 最后,用户可能会遇到一些常见问题,比如项目创建后无法运行,或者依赖下载失败,这时候可能需要建议检查网络连接,或者更换Maven镜像源,比如使用阿里云的镜像。同时,提醒用户可以根据需要添加其他依赖项,比如Spring框架或者其他库。 总结一下,回答应该分步骤说明如何通过IDEA的图形界面创建Maven Web项目,包括选择原型、填写项目信息、配置Maven和可能的后续调整。然后提出相关问题,比如如何配置Tomcat、添加依赖、修改打包方式、解决常见错误等,帮助用户深入理解和解决问题。</think>在 IntelliJ IDEA 2023.1 中创建 Maven Web 项目的步骤如下: 1. **新建项目** - 打开 IDEA → `File` → `New` → `Project` - 左侧选择 `Maven` → 勾选 `Create from archetype` → 选择 `maven-archetype-webapp` 2. **配置项目信息** - 输入 `GroupId`(如 `com.example`) - 输入 `ArtifactId`(如 `my-webapp`) - 点击 `Next` → 确认 `Maven home path` 和 `User settings file` → 点击 `Next` 3. **确认项目路径** - 设置项目名称和存储路径 → 点击 `Finish` 4. **检查生成结构** - 项目会自动生成以下内容: - `pom.xml`(Maven 配置文件) - `src/main/webapp/WEB-INF/web.xml`(Web 配置文件) - 标准 Maven 目录结构 5. **可选配置** - 修改 `pom.xml` 添加依赖(如 Servlet API): ```xml <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency> </dependencies> ``` - 将打包方式改为 `war`(若未自动生成): ```xml <packaging>war</packaging> ``` 6. **部署运行** - 配置 Tomcat Server(`Run` → `Edit Configurations` → 添加 Tomcat) - 运行项目即可在浏览器访问默认页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wuweijie@apache.org

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值