背景
IDEA 版本:2021.3.2
Maven版本:3.8.2
现象
Error injecting constructor, java.lang.NoSuchMethodError: org.apache.maven.model.validation.DefaultModelValidator: method <init>()V not found
org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable to provision, see the following errors:
尝试过的方案
-
清除 IntelliJ IDEA 的缓存:在 IntelliJ IDEA 中选择 "File" -> "Invalidate Caches / Restart",然后重新启动 IntelliJ IDEA。这将清除 IntelliJ IDEA 的缓存,包括 Maven 相关的缓存文件。
-
检查 Maven 配置:确保 IntelliJ IDEA 中的 Maven 配置与您终端中的 Maven 配置一致。在 IntelliJ IDEA 中,打开 "Preferences" 或 "Settings" 窗口,并导航到 "Build, Execution, Deployment" -> "Build Tools" -> "Maven",检查配置是否正确。
-
检查项目设置:在 IntelliJ IDEA 中打开您的项目,选择 "File" -> "Project Structure",然后确保 Maven 的相关设置正确。在左侧的树形菜单中选择 "Modules",检查每个模块的 Maven 设置,包括正确的 Maven 项目和 Maven 输出路径。
-
强制重新导入 Maven 项目:在 IntelliJ IDEA 的 Maven Projects 窗口中,右键单击您的项目,选择 "Reimport" 或者选择 "Tools" -> "Maven" -> "Reimport All Maven Projects",以强制重新导入项目的依赖。
-
检查依赖范围:确保您的依赖项的范围设置正确。在 pom.xml 文件中,检查每个依赖项的 <scope> 元素,确保它们符合您的需求。有些依赖项可能会被排除或仅在特定范围内使用。
-
检查 Maven 本地仓库路径:在 IntelliJ IDEA 中,打开 "Preferences" 或 "Settings" 窗口,并导航到 "Build, Execution, Deployment" -> "Build Tools" -> "Maven",确认 Maven 本地仓库路径配置正确。
-
删除项目中的 .idea 文件夹,并重新打开 IntelliJ IDEA,重新导入项目。
以上方案均无法解决
最终尝试的方案
这个错误通常发生在 IntelliJ IDEA 的 Maven 构建过程中,可能是由于不兼容的 Maven 版本或依赖项冲突导致的。
将 idea 2021.3.2 中配置的maven 版本从 3.8.2 降到 3.6.3 版本,重新删除项目缓存即可解决
网友评论