解决 IDEA 2020.2 reading pom.xml 卡死问题

一、解决方案搜寻

刚出 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,就能看到)。

distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip

wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar

可以看到里面有两个 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 而不舒服了。

时间: 2020-10-12

IntelliJ IDEA卡死,如何优化内存

本文作者在和同事的一次讨论中发现,对 IntelliJ IDEA 内存采用不同的设置方案,会对 IDE 的速度和响应能力产生不同的影响. Don't be a Scrooge and give your IDE some more memory 不要做守财奴,给IDE多留点内存吧. 昨天,大家就是否自定义 IntelliJ IDEA 的内存设置进行了讨论,有些人选择默认设置,有些人会对默认的设置进行简单的变更,还有一些开发者会基于他们的需求进行全面复杂的设置.笔者目前的工作是处理几个微服务项目和

IDEA项目的依赖(pom.xml文件)导入问题及解决

前言 IDEA新建项目和pom.xml文件被修改时,右下角都会出现 Maven projects need to be imported(项目需要导入依赖) 如下,点击 Import Changes导入后,有时会一直处于加载中或导入失败 解决方法 第一种方法: 右击pom.xml文件,选择Maven中的Reimport重新导入项目依赖,一般这种方法都解决不了上面的问题,可直接看下面的方法 第二种方法: 点击 File 选择 Settings- 直接搜索 Maven,在搜索结果中 Maven ho

IDEA2020.2创建springboot项目卡死在reading maven project的问题

解决方法一 问题描述: 昨天更新IDEA2020.2版本后,创建springboot项目的时候发现一直在reading maven project 中,如下图,而且一点setting(想修改本地maven路径)时,IDEA就卡死,而且打开任务管理器发现IDEA高占CPU. 原因: 猜测是2020.2版本问题,用其他版本没有出现这类情况. 由于第一次用spring Initializr创建maven的项目,它不会找IDEA自带的maven,也不会找你配置的本地maven,而是重新下载一个全新的ma

idea2020.2卡死在reading maven projects

这是Idea2020.2版本的官方bug,经过多方案测试,我已经解决,下面分享下经验. 我的方法:修改Host文件 1.结束idea的进程 2.将所有指向127.0.0.1的网址注掉,并添加一条新纪录,将127.0.0.1指向localhost 3.保存并重启Idea 提示:修改host文件需要管理员权限(否则系统会提示你需要另存为),这类基础操作自行百度即可. 网友的方法: 移除项目下 .mvn/maven-wrapper.properties 文件,重启IDEA 到此这篇关于idea2020

解决IDEA创建maven项目时pom.xml没有变蓝的问题

如下所示: 选中pom.xml,右键点击add as maven project, 稍等片刻后就可以了 补充知识:Idea导入maven项目不自动识别pom.xml *Idea导入maven项目不自动识别pom.xml *当在idea中导入maven项目时,不能自动识别pom文件 解决方法: 1.右键pom.xml文件,选择" add as maven project",即可自动导入pom所依赖的jar包 另外刷新Maven配置的方法为: (1)右键单击项目: (2)在弹出菜单中选择M

解决idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题

之前百度找答案,指明的是依赖中servlet-api中添加provided 发现自己的依赖中已添加,未找到解决办法. 显示红色报错,阿里云仓库无法下载该文件.报错如下: 找到文件位置,删除maven本地仓库文件 解决办法:指定版本信息2.2 到此这篇关于idea2020.2遇到pom.xml文件报错maven插件tomcat7的问题的文章就介绍到这了,更多相关idea2020.2报错maven插件tomcat7内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

基于Maven的pom.xml文件详解

如下所示: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!-- 父项

java 中maven pom.xml文件教程详解

maven pom.xml文件教程详解,具体内容如下所示: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.x

三个思路解决laravel上传文件报错:413 Request Entity Too Large问题

最近一个项目当中,要求上传图片,并且限制图片大小,虽然在laravel当中已经添加了相关的表单验证来阻止文件过大的上传,然而当提交表单时,还没轮到laravel处理,nginx就先报错了.当你仔细看报错页面时,你会发现有nginx版本信息,经过分析,这报错是因为nginx的默认上传文件大小配置client_max_body_size只有2MB, 基于nginx验证比laravel验证要早,想要友好报错而不是直接显示413 Request Entity Too Large,那么就有三个思路去解决.

解决Ajax方式上传文件报错"Uncaught TypeError: Illegal invocation"

今天使用ajax上传文件时,出现了错误.数据传输的方式是通过定义formData完成的,提交的文件对象也设置为dom对象,但是还是不能发送请求.F12看到后台报了个错误:Uncaught TypeError: Illegal invocation,百度了一下,找到了解决方法. 解决方法:在ajax请求的参数中添加如下两个参数: $.ajax({ ..., processData: false, contentType: false, ... }); processData 类型:Boolean

解决pandas read_csv 读取中文列标题文件报错的问题

从windows操作系统本地读取csv文件报错 data = pd.read_csv(path) Traceback (most recent call last): File "C:/Users/arron/PycharmProjects/ML/ML/test.py", line 45, in <module> data = pd.read_csv(path) File "C:\Users\arron\AppData\Local\Continuum\Anacon

解决pandas中读取中文名称的csv文件报错的问题

之前在使用Pandas处理csv文件时,发现如果文件名为中文,则会报错: OSError: Initializing from file failed 后来在一位博主的博客中解释了是read_csv中engine参数的问题,默认是C engine,在读取中文标题时有可能会出错(在我这是必现),解决方法是将engine换为Python(官方文档的说法是C engine更快但是Python engine功能更完备),具体写法: df.read_csv('filename', engine='pyth

bootstrap+jquery项目引入文件报错的解决方法

做一个项目的时候 ,控制台总是会出现各种bug,其实不用慌张,终结起来也就几种类型的错误,在开发中每次遇到错误都善于总结,下次在看到就会胸有成竹知道是什么情况了,以下是在开发过程中总结的一些错误以及错误的解决方法. 报错一:Uncaught ReferenceError: $ is not defined Uncaught ReferenceError: $ is not defined Uncaught ReferenceError: jQuery is not defined 错误原因:文件

Python 解决OPEN读文件报错 ,路径以及r的问题

Python 中 'unicodeescape' codec can't decode bytes in position XXX: trun错误解决方案 背景描述 今天在运用Python pillow模块处理图片时遇到一个错误 SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 刚开始以为是图片名字有中文,不识别,于是

解决idea导入ssm项目启动tomcat报错404的问题

用idea写ssm项目,基于之前一直在用spring boot 对于idea如何运行ssm花费了一番功夫 启动Tom act一直在报404 我搜了网上各种解决办法都不行,花费一天多的时间解决不了 就是在pom中添加下面代码 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin<

解决安装python库时windows error5 报错的问题

python安装库时,有时候会报错windows error 5,可以尝试关闭所有使用python的编辑器.文件等,然后重新pip安装,如果还是不行,可以将报错最下层文件删除即可(如果不放心可以将该文件先备份),记录之~ windows error错误代码: windows error错误代码: 0操作成功完成. 1功能错误. 2系统找不到指定的文件. 3系统找不到指定的路径. 4系统无法打开文件. 5拒绝访问. 6句柄无效. 7存储控制块被损坏. 8存储空间不足,无法处理此命令. 9存储控制块