IntelliJ IDEA加载Maven项目失败,抛出java.net.SocketException: Broken pipe错误
IntelliJ IDEA已成功识别打开的项目为Maven项目,并弹出带有Load Maven Project按钮的弹窗,但点击按钮后UI无任何反应。(弹窗截图:显示识别为Maven项目后弹出的Load Maven Project按钮)
查看IntelliJ IDEA的日志文件,发现多条如下错误日志:
2024-09-23 21:28:20,439 [1325080] INFO - #o.j.i.maven - Using extension org.jetbrains.idea.maven.maven3.Maven3Support@59e87873 to start MavenServer
2024-09-23 21:28:20,451 [1325092] INFO - #o.j.i.maven - Sent token to maven server
2024-09-23 21:28:20,711 [1325352] WARN - #c.i.e.r.RemoteProcessSupport - The cook failed to start due to java.net.SocketException: Broken pipe
2024-09-23 21:28:20,753 [1325394] INFO - #c.i.e.r.RemoteProcessSupport - Terminating: 127.0.0.1:61362/Maven36ServerImpl3157b954
2024-09-23 21:28:20,753 [1325394] INFO - STDERR - Exception in thread "DefaultDispatcher-worker-14" org.jetbrains.idea.maven.server.CannotStartServerException: java.util.concurrent.ExecutionException: java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
2024-09-23 21:28:20,753 [1325394] INFO - STDERR - java.net.SocketException: Broken pipe
这些错误正好是点击Load Maven Project按钮时抛出的。
环境信息
- IntelliJ IDEA 2024.2.2(旗舰版)
- javac 21.0.4
- Apache Maven 3.8.5
- Apple M2 Pro
- MacOS Sequoia
1. 修复Maven与JDK版本兼容问题
Maven 3.8.5对JDK 21的支持不完善,可二选一操作:
- 切换项目SDK为JDK 17:打开
File > Project Structure > Project,将项目SDK改为JDK 17; - 升级Maven至3.9.6及以上版本:下载对应版本后,在
Settings > Build, Execution, Deployment > Build Tools > Maven中指定新的Maven安装路径。
2. 清理Maven相关缓存
- 关闭IDEA,删除以下目录:
~/Library/Caches/JetBrains/IntelliJIdea2024.2/Maven- 项目根目录下的
.idea文件夹和target文件夹
- 重新启动IDEA,重新导入Maven项目。
3. 切换Maven执行模式
打开IDEA设置,进入Build, Execution, Deployment > Build Tools > Maven > Importing,勾选Delegate IDE build/run actions to Maven,同时取消Use Maven wrapper(若使用本地Maven)。
4. 检查端口占用与防火墙
- 用
lsof -i :61362命令检查日志中出现的端口是否被占用,若占用则关闭对应进程; - 临时关闭MacOS防火墙(
系统设置 > 网络 > 防火墙),尝试重新加载Maven项目。
5. 禁用IDEA的Maven服务器模式
打开Help > Edit Custom VM Options,添加以下参数:
-Dmaven.server.disable=true -Didea.maven.server.enabled=false
重启IDEA后再次尝试加载Maven项目。
内容的提问来源于stack exchange,提问作者user471011

