IDEA新建maven、SprintBoot项目出现报错:未解析的插件: ‘org.springframework.boot:spring-boot-maven-plugin:3.4.1‘解决和原因

问题

使用IDEA创建Spring Boot项目时出现报错

未解析的插件: 'org.springframework.boot:spring-boot-maven-plugin:3.4.1'
未解析的插件: 'org.apache.maven.plugins:maven-clean-plugin:3.4.0'
未解析的插件: 'org.apache.maven.plugins:maven-jar-plugin:3.4.2'
未解析的插件: 'org.apache.maven.plugins:maven-surefire-plugin:3.5.2'
未解析的插件: 'org.apache.maven.plugins:maven-install-plugin:3.1.3'
未解析的插件: 'org.apache.maven.plugins:maven-deploy-plugin:3.1.3'

但是只是用maven创建了一个springboot项目而已。

听说这个不影响项目运行,不知道是不是。

解决方案

intellij 想法 - 未解析的插件:“org.apache.maven.plugins:maven-jar-plugin:2.4” - 堆栈溢出 (stackoverflow.com)
在全局pom.xml的<dependencies></dependencies>里面插入未解析的依赖项。
插入插件maven-jar-plugin的依赖项
然后重新构建,可以看到报错消除。同时查看.m2\repository\org\apache\maven\plugins目录,发现新建了这些版本的插件。对应maven-install-plugin插件3.1.3版本

原因

要知其然,知其所以然。

我觉得很奇怪,

  1. 为什么出现这个报错?(我是一个java小白)
  2. 为什么是这些版本,那里指定了这些插件的默认版本?
1. stackoverflow提供的结局方案

在 IntelliJ 中找不到 Maven 插件

2. 插件未解析报错原因

查看全局pom.xml文件的parent标签,发现继承 spring-boot-starter-parent POM,间接管理插件版本。

spring-boot-starter-parent 提供了一组默认的依赖管理和插件管理配置。该配置在.m2\repository\org\apache\maven\plugins中不存在,因此报错未解析的插件

3. 指定插件默认版本的位置
  1. Maven 的构建过程是基于一系列预定义的生命周期阶段(如 validate, compile, test, package, install, deploy 等)。每个阶段可以绑定一个或多个 Maven 插件 的目标(goals),这些插件负责执行具体的任务,比如编译代码、运行测试、打包项目等。

  2. spring-boot-starter-parent 提供了一组默认的依赖管理和插件管理配置,这些配置包括了许多常用库和插件的版本号。因此,当您在自己的 pom.xml 文件中指定 spring-boot-starter-parent 作为父 POM 时,实际上是在利用 Spring Boot 提供的默认版本管理。

  3. 查看spring-boot-starter-parent 的默认管理版本以验证:
    1. 查看版本属性(官网):版本属性 :Spring Boot
    2. 查看依赖项的完整列表(官网?):spring-boot/spring-boot-project/spring-boot-dependencies/build.gradle at v3.4.1 · spring-projects/spring-boot (github.com)
    3. 在依赖项的完整列表里查找对应依赖,确实是出现报错的版本号。maven-install-plugin插件的默认版本

### 解决方案 当遇到 `org.springframework.boot:spring-boot-maven-plugin` 插件找到的问题时,通常是因为 Maven 的中央仓库无法访问该版本的插件或者本地配置存在问题。以下是详细的解决方案: #### 1. 检查 Spring Boot 版本与 Plugin 版本匹配 确保项目Spring Boot 版本 `spring-boot-maven-plugin` 的版本一致。如果当前使用的 Spring Boot3.x,则应使用对应的 plugin 版本。例如,在 pom.xml 中设置如下内容[^1]: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>${spring-boot.version}</version> <!-- 确保此版本号与 Spring Boot 主版本一致 --> </plugin> </plugins> </build> ``` #### 2. 配置镜像源 有时由于网络问题,Maven 可能无法从默认的中央仓库下载依赖项插件。可以通过在 `settings.xml` 文件中添加阿里云或其他国内镜像来解决问题[^4]。 ```xml <mirrors> <mirror> <id>aliyun</id> <name>Aliyun Mirror</name> <url>https://maven.aliyun.com/repository/public</url> <mirrorOf>*</mirrorOf> </mirror> </mirrors> ``` #### 3. 手动指定插件管理器 如果仍然存在解析插件错误,可以尝试手动引入所需的 Apache Maven Plugins 并将其加入到 `<pluginManagement>` 节点下: ```xml <build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>3.4.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.4.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.5.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>3.1.3</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>3.1.3</version> </plugin> </plugins> </pluginManagement> </build> ``` #### 4. 更新 IDEA Maven 设置 确认 IntelliJ IDEA 已经启用了自动导入功能,并且 Maven 的索引已更新。可以在 IDE 的 **File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven** 下勾选 “Enable Auto-Import”。此外,执行以下命令强制刷新依赖关系[^2]: ```bash mvn clean install -U ``` #### 5. 替代插件方式 作为最后的选择,可考虑将 `spring-boot-maven-plugin` 替换为标准的 Maven 生命周期目标实现打包逻辑。不过这种方法不推荐,因为会失去 Spring Boot 提供的一些便捷特性。 --- ### 总结 通过上述方法中的任意一种都可以有效解决 `org.springframework.boot:spring-boot-maven-plugin` 插件找到的问题。优先建议调整版本一致性并优化网络环境下的依赖加载路径。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值