Maven导包爆红(出错)的完整解决思路
相关场景:
1.导入的新项目,maven未把全部的包导入
2.创建父项目用来统一管理整个项目中技术的版本。但是在创建父项目时候较多新技术的jar包未被导入
场景一的解决方案(通用):
步骤一:
- **主要思路:**检测idea对于maven的配置
具体步骤:
点击file->settings->查看maven版本是否和自己下载版本一致、仓库是否是自己在maven的config中settings.xml中配置的仓库位置。以及setting.xml位置是否是刚选择的maven中的settings.xml在这里插入图片描述
其中Maven home directory是maven安装位置,User setting file是指你安装的maven中settings.xml的位置,local repository是指在settings.xml中配置的本地仓库的位置。若经过步骤一调整过后仍有问题请看步骤二。
步骤二:
主要思路:增加下载渠道,并且删除旧的下载失败的jar包
具体步骤:
- 在setting.xml中的<mirrors>中添加镜像。其中setting.xml在下载的maven中config里;
- 删除下载失败的jar包;
- 重新导包
其中setting.xml的位置在下载的maven中的conf(配置文件)中。
镜像需要添加在中,添加的镜像为(若有重复的镜像可以不用再次添加了):
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>Central</id>
<url>http://repo1.maven.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
在本地仓库中搜索以.lastUpdated结尾的文件。这些文件都是下载失败的jar包
将搜到的所有文件ctrl+a,然后删除即可。
打开相关项目,点击右侧的maven,之后点击reImport即可。
至此,绝大多数的maven导包异常都已经解决。但是仍可能存在部分包导不进去,此时只能手工导入。
步骤三:
主要思路:一些jar包不知为何无法导入,此时需要手工导包
具体步骤:
- 找到在项目的pom.xml无法导入的包;
- 找同学或者同事将这些包传给你;
- 将这些包放到对应位置,然后重启idea即可(或者reimport都行,可能不做操作也可)
这个意思就是在本地仓库的com文件夹里的baomidou文件夹中缺少mybatis-plus-boot-starter文件的3.3.1版本,如果你从同学那要的文件夹包含这个则,只需要在对应位置上将这个3.3.1的包放到"本地仓库.com.baomidou.mybatis-plus-boot-starter"中即可。
我所找的这个是mybatis-plus-boot-starter的文件夹,其中只有一个3.3.1版本,若你本地方库中存在其他版本的mybatis-plus-boot-starter,但是没有你所需要的这个,那么你只需将对应版本放到这个mybatis-plus-boot-starter里面即可。
此时因为我的本地方库中也没有mybatis-plus-boot-starter,文件夹,因此需要创建个文件夹并找的的所需版本mybatis-plus-boot-starter copy进里面即可。
tips:pom.xml中依赖的groupId指的是artifactId需要在本地仓库中存放的位置,version是对应的artifactId的版本。
至此,应该九成以上的maven导包依赖问题解决了。
场景二(父工程导包出错):
**出错原因(猜测):**可能因为springboot版本问题,导致无法识别统一版本号
解决方案:
将中爆红的依赖,放到另一个项目中的中,并且指定你所需的中的版本即可。本人是这样解决掉父工程爆红错误的。若仍出错,可以参考场景一。