系统环境:win10,jdk8,idea2018.2,maven3.3.9,springboot2.2.2RELEASE
一、问题描述
今天接手一个项目,从git上拉下来,配置好jdk与maven后,maven导包一直导不进去。所有maven导的包报红,pom文件只是<project>标签上报红。具体现象截图如下:
pom文件:
mavenproject:
java文件:
由上图可以发现,除了jdk自带包可以导入外,其他外部包一概导入失败(外部包都是利用maven导入的)。
二、问题分析
该问题出现的原因主要是Maven导包失败造成的,主要有以下原因:
1、项目问题,版本不兼容(比较少见)
2、pom.xml文件编写问题,或者没有写完整依赖。
3、资源加载时失败,比如下载的类包只有文件夹没有jar文件,或者网络卡顿,或者idea加载类包不及时等原因。
排查本项目的问题:
1、首先我的pom文件没有改动,基本是不会出现问题的。
2、将鼠标放在pom.xml文件的<project>标签上,上面会提示报错信息:
Failed to read artifact descriptor for org.glassfish:javax.el:jar:3.0.1-b06-SNAPSHOT
比如这个是导入org.glassfish:javax.el:jar失败,我们可以在我们的资源库中找到这个文件的目录:资源文件目录/org/glassfish/javax.el
可以看到这里面maven尝试下载了很多次,但是文件夹里面基本是没有jar文件的。
这时候可以将javax.el文件夹整个删除掉,重新加载maven进行下载就可以,如果还出先问题可以修改下载源地址。
三、问题解决
1、检查pom文件是否拼写错误
由以上情况可以发现maven导入的包全部失败,这里不排除是由于pom文件出现错误,所以需要仔细检车下pom文件是否出现简单的编写错误
2、重新加载maven资源
右击pom.xml,选择Maven后点击Reimport,重新加载类包。
有些项目没有添加Maven Project的话,需要先添加一下
基本上pom文件写的正确,进行过重新加载后问题会解决,但是有些项目还是会报红,可以将mavenProject移除掉再加载一下
以上操作完成后,基本就解决了pom文件报红,以及类包导入失败等问题。
注意:有些时候报红是因为下载类包时网络比较慢,或者是idea载入类包更新不及时造成的,这些时候就需要等一段时间,或者尝试重启软件等办法(大多数都是以上情况造成的)。