一、解决方案搜寻
刚出 IDEA 2020.2 版本的时候,当时第一时间更新了。打开公司的项目,没啥问题,但是当打开自己的项目的时候,就会看到右下角显示 reading pom.xml 然后就卡死了。很多次都这样,后来就回滚了 2020.1,直到今天才来再次尝试发现原因和解决方案。
1.1 导致原因的设定
如果有幸点进了 setting 中的 Maven 选项卡,那么可以看到 "Maven home dictionary"
也就是自定义的本地 Maven 路径被改成了 C:\Users\{你的用户名}\.m2\wrapper\dists\apache-maven-3.6.3-bin\1iopthnavndlasol9gbrbg6bf2
文件下的 Maven 路径,或者是 IDEA 默认 Maven 路径
。
本以为把这个改了就可以了,但是下次启动还是会被改回来。但是启动项目的时候,直接打开公司的却没啥事。
1.2 搜索到的解决方案
也过了一段时间了,网上也有解决方案了,目前解决方案为两种:
一种是删除项目内的 .mvn
文件夹(或者删除里面的 maven-wrapper.properties
文件)
还有一种是来到 C:\Users\{你的用户名}\.m2\wrapper\dists\apache-maven-3.6.3-bin\1iopthnavndlasol9gbrbg6bf2
文件夹下,也就是 setting 中 Maven 指向的文件夹,把已有本地的 maven 包复制到其中。
至此,解决问题应该是够用了。但是这两个是不是好的方案,下面进行分析。
二、导致问题的原因
2.1 IDEA 2020.1 和 2020.2 的区别
可以去看 JetBrains 的官网的介绍,也有中文的更新说明,以下截图来自于官网。
从图片中可以看到,IDEA 2020.2 有了对 Maven Wrapper 的支持。而它就是导致原因的所在。
2.2 IDEA 中的 Maven Wrapper
这个 Maven Wrapper 和 Gradle Wrapper 类似,直白点就是自带了一个 Maven/Gradle 的包,省去了安装、版本不一致等问题。
而 IDEA 2020.2 支持了这个功能,也就是说,差不多等于不用再手动配置 Maven 了,有了项目下的 .mvn/wrapper/maven-wrapper.properties
就能直接下载项目中所需的 Maven 了。
打开 maven-wrapper.properties
文件,可以看到一般里面就只有两行(有些项目可能没有,可以去尝试 new 一个项目,比如 Spring Boot,就能看到)。
可以看到里面有两个 url 的网络地址,也就是这个项目会去从这个地址下载所需的文件。那么,如果直接打开这个 url 进行下载呢?于是我尝试了一下,如图:
可以看到,速度为几 KB/s,也就是说,当新建了一个项目的时候,它在 reading pom.xml
的时候,很有可能在以这个速度在下载,甚至可能下载失败了。如果有能力,可以试试给 IDEA 走代理,或者换网络,然后重新 reading pom.xml
,这时候大概率是不会卡死的,当然也有可能最后完成的时候会报错。
2.3 Maven 的下载路径
从网络下载 Maven,必然要保存到本地的,那保存在哪里呢?就是在 C:\Users\{你的用户名}\.m2\wrapper\dists\apache-maven-3.6.3-bin\1iopthnavndlasol9gbrbg6bf2
这里。所以之前的解决方案中,复制一份自己的 Maven 到这个文件夹,是能解决问题的。
2.4 .mvn 文件夹
里面只有一个 Maven Wrapper 的 jar 和一个 maven-wrapper.properties
。如果项目中有这个文件夹的话,那么手动在 setting 中设置 Maven 路径的话,是无效的,最后还是会更改到 C:\Users\{你的用户名}\.m2\wrapper\dists\apache-maven-3.6.3-bin\1iopthnavndlasol9gbrbg6bf2
或者 IDEA 的默认路径
中,所以删除 .mvn
文件夹后(或者删除 maven-wrapper.properties
文件),就能解决问题了。
三、解决方案评估
3.1 方案一:删除 .mvn 文件夹
这个方法可以使得 IDEA 能够使用自己的 Maven 路径。如果自己的 Maven 中配置了很多设置的话,建议把 .mvn
文件夹删除。
但是这个方法有个弊端,就是当新建一个工程的时候,IDEA 会默认创建 .mvn
文件夹,也就是说,手速不够快的话,还是会卡死在 reading pom.xml。
3.2 方案二:复制 Maven 到 .m2 文件夹下
这个方法解决了新建工程的时候下载 Maven 的问题,不会因为网络问题而卡在下载 Maven。但是这个方法需要把自己配置的 Maven 复制到 C:\Users\{你的用户名}\.m2\wrapper\dists\apache-maven-3.6.3-bin\1iopthnavndlasol9gbrbg6bf2
文件夹中,IDEA 会默认使用这个路径下的 Maven,不能自定义,可能对于某些人会比较难受。
3.3 方案三:使用一个好的网络
导致问题的原因就是下载 Maven 的原因,也就是说,找一个能下载 Maven 的网络的话,就能避免卡死在 reading pom.xml 了。
3.4 前两种方案结合
方案一和方案二结合的话,首先确保新建工程的时候,不会因为下载而卡死,从而能将工程新建起来;然后将 .mvn
删除之后就能使用自己配置的 Maven 了,这样就不会因为用了默认路径下的 Maven 而不舒服了。
原网址: 访问
创建于: 2024-04-23 09:54:37
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论