IDEA2021.1
jdk1.8
最简单粗暴的方法
点击 maven 中的 clear,然后点击 File 菜单中的 Invalidate Caches… 清理缓存并重启 IDEA
解决方法
pom.xml中的SpringBoot的父级配置版本与自己IDEA版本默认导入的SpringBoot版本不一致,修改方法如下:
方法一
或者改变一下 <parent>
标签里的版本修改一下,按 Ctrl+Shift+O 快捷键更新一下 pom,然后版本再改回来原来的再更新一下 pom
方法二
1)直接去自己的maven仓库,找到Spring boot,然后直接删除下面的文件
2)将pom.xml中的SpringBoot的父级配置版本改成自己IDEA版本默认导入的SpringBoot版本,查看方法如下:新建一个Initializr项目,查看pom.xml中的parent标签的版本即可,类似代码如下:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.4</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
原因推测
可能是因为一个IntelliJ IDEA版本只默认一个SpringBoot版本,当maven仓库中已经有一个版本的SpringBoot依赖的时候,再使用其他版本的,maven会以该包已经存在为理由而拒绝下载,但是我们实际上却因为版本不同,我们根本就找不到需要的依赖包。
做完以上步骤,可以点击 maven 中的 clear,再把项目关掉重新打开试试,或者看看是否jdk版本是否有问题
方法三
如果 Maven 一直有问题,可能是引入了当前项目中的某个路径中的 jar 包,但是没有引入成功,造成 maven 整体的依赖没有引入,进而整个项目都报红。
所以先注释掉引入的 lib 文件中的依赖,类似如下的引入给他注释掉,然后点击maven里的重新加载 maven。
即便有时候看起来 maven 没有报错信息,但有时也会有可能是某些包导致的问题,建议逐个注释掉试试。
方法四
如果 Maven 刚开始加载一下就不加载了,并且报以下错误:
java.lang.RuntimeException: java.lang.RuntimeException: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method <init>()V not found
at org.jetbrains.idea.maven.server.embedder.CustomModelValidator.<init>(Unknown Source)
while locating org.jetbrains.idea.maven.server.embedder.CustomModelValidator
at ClassRealm[maven.ext, parent: ClassRealm[plexus.core, parent: null]] (via modules: org.eclipse.sisu.wire.WireModule -> org.eclipse.sisu.plexus.PlexusBindingModule)
while locating org.apache.maven.model.validation.ModelValidator annotated with @com.google.inject.name.Named(value=ide)
... 24 more
可能是因为 Maven 版本问题导致的:https://blog.csdn.net/qq_42768827/article/details/124984189