日常解惑-IDEA读取pom文件卡死问题

前情摘要

在idea中创建一个springboot项目,然后发现卡死在了以下页面:

很明显,这个问题跟maven有点关系。

问题排查

其实大概率猜测一下肯定又是墙的问题。

既然是pom文件的问题,那我首先先去项目的根目录下看看。发现根目录下面比平时多了一个.mvn的文件,这个就是用来管理maven的东西。这里可以稍微展开来讲一讲这东西是做什么的。

Maven Wrapper简单介绍

如果有的用户不希望在自己的系统中装上maven,或者是某个项目需要特定的maven版本等,就可以在自己的项目中创建对应的.mvn文件,这样就可以用修饰过后的maven了。

我们先来看看它的结构:

1
2
3
4
5
├── .mvn
│   └── wrapper
│   ├── MavenWrapperDownloader.java
│   ├── maven-wrapper.jar
│   └── maven-wrapper.properties

首先只有一个文件夹,然后里面有三个文件,一个是下载MavenWrapper的“脚本”,一个是对应的jar包,还有一个是对应的配置文件。

在大多数时候,项目用到的maven版本就是我们安装在系统中的maven版本,但是对于有些特定的项目,我们必须使用特定版本的maven,这个时候就可以用到

Maven Wrapper,它可以让这个项目单独用到指定版本的maven,而其他项目不受影响。

显然是idea在下载.mvn指定版本的maven的时候,因为网络等原因下载失败,导致后续的失败。

解决方法

  • 如果确实是不需要这个Maven Wrapper以及它提供的特性,那么可以直接删掉.mvn文件夹就行了。
  • 或者修改对应的.mvn下的maven-wrapper.properties文件的distributionUrl属性,让其指向一个国内的maven压缩包。
  • 或者你可以直接把对应版本的maven下载好,然后把压缩包扔到~/.m2\wrapper\dists\apache-maven-3.6.3-bin\1iopthnavndlasol9gbrbg6bf2这个文件夹里面。
  • 把网络搞定,但是这个可能比较有难度。