IntelliJ打开Spring Initializr项目构建报错且找不到主类
问题原因
你遇到的两个问题是同源的,核心触发点是IntelliJ IDEA的Maven组件与项目使用的Maven版本不兼容:
java.lang.RuntimeException: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:
- Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method 'void ()' not found
at org.jetbrains.idea.maven.server.embedder.CustomModelValidator.(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")1 error
role: org.apache.maven.model.validation.ModelValidator
roleHint: ide
这个报错是典型的版本不匹配问题:IDEA自带的Maven解析插件依赖的DefaultModelValidator构造方法,和当前加载的Maven核心包中的方法签名不一致,导致Guice依赖注入失败,Maven构建流程完全中断。
Maven构建失败后,项目依赖不会被拉取、源码目录不会被正确标记、编译输出路径不会生成,自然会出现添加运行配置时找不到主类的连带问题。
解决步骤
- 对齐Maven版本
打开IDEA设置,进入Build, Execution, Deployment > Build Tools > Maven配置页:- 2022.3及更早版本的IDEA,不要搭配Maven 3.9.x及以上版本使用,直接选择
Maven home path为IDEA自带的Bundled Maven即可,也可以手动下载Maven 3.8.8版本配置路径 - 2023.1及更新版本的IDEA,要么使用自带的Bundled Maven,要么将本地独立安装的Maven升级到3.9.0以上版本,保证版本匹配
- 2022.3及更早版本的IDEA,不要搭配Maven 3.9.x及以上版本使用,直接选择
- 清理缓存重新同步
配置完Maven路径后,点击Maven侧边栏的刷新按钮重新导入项目;如果报错仍存在,点击菜单栏File > Invalidate Caches...,勾选清除文件系统缓存和索引后重启IDEA,等待项目重新索引完成 - 校验主类配置
索引完成后确认src/main/java目录被标记为Sources Root(右键目录选择Mark Directory as > Sources Root),之后新建Spring Boot运行配置时,直接在Main class下拉项中选择带@SpringBootApplication注解的启动类即可。
内容的提问来源于stack exchange,提问作者runnerpaul
相关产品推荐
相关产品推荐

