问题
使用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>
里面插入未解析的依赖项。
然后重新构建,可以看到报错消除。同时查看.m2 epositoryorgapachemavenplugins
目录,发现新建了这些版本的插件。
原因
要知其然,知其所以然。
我觉得很奇怪,
- 为什么出现这个报错?(我是一个java小白)
- 为什么是这些版本,那里指定了这些插件的默认版本?
1. stackoverflow提供的结局方案
2. 插件未解析报错原因
查看全局pom.xml文件的parent
标签,发现继承 spring-boot-starter-parent
POM,间接管理插件版本。
spring-boot-starter-parent
提供了一组默认的依赖管理和插件管理配置。该配置在.m2 epositoryorgapachemavenplugins
中不存在,因此报错未解析的插件
。
3. 指定插件默认版本的位置
-
Maven 的构建过程是基于一系列预定义的生命周期阶段(如
validate
,compile
,test
,package
,install
,deploy
等)。每个阶段可以绑定一个或多个 Maven 插件 的目标(goals),这些插件负责执行具体的任务,比如编译代码、运行测试、打包项目等。 -
spring-boot-starter-parent
提供了一组默认的依赖管理和插件管理配置,这些配置包括了许多常用库和插件的版本号。因此,当您在自己的pom.xml
文件中指定spring-boot-starter-parent
作为父 POM 时,实际上是在利用 Spring Boot 提供的默认版本管理。 -
查看
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. 在依赖项的完整列表
里查找对应依赖,确实是出现报错的版本号。