在Spring Boot 的 pom 文件中,加入一个新的依赖,有的依赖版本号旁边会有一个黄色灯泡的警告,去掉版本号就正常了。
有些依赖需要写版本号,有些依赖不需要写版本号,这是为什么呢?
再看看 pom 文件,它的头部引入了一个父类:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
<relativePath/>
</parent>
点 spring-boot-starter-parent 进去查看源文件会发现,spring-boot-starter-parent 继承了 spring-boot-dependencies:
点 spring-boot-dependencies 进去查看源文件会发现,它在管理着相关依赖的版本:
在 dependencyManagement 进行依赖管理,在 pluginManagement 中进行插件管理:
spring-boot-dependencies 对依赖的管理方法,我们也可以借鉴一下。
spring-boot-dependencies 只管理着部分依赖,还有一些第三方依赖没有管理到,当我们创建微服务时,就可以使用这种方法来管理父类的 POM 文件,把依赖的版本号集中在主POM中管理,其他子项目只需要在使用的时候引入即可,无需写版本号。
单项目,那就没有这么管理的必要了,不要为了管理而管理。
总结一下,spring-boot-dependencies对插件的管理方法为:
<!--版本号管理 start -->
<properties>
<test.version>5.5.2</test.version>
<plugin.version>5.5.2</plugin.version>
</properties>
<!--版本号管理 end -->
<!-- 依赖管理 start -->
<dependencyManagement>
<dependencies>
<groupId>xxxx</groupId>
<artifactId>xx-maven-plugin</artifactId>
<version>${test.version}</version>
</dependencies>
</dependencyManagement>
<!-- 依赖管理 end-->
<!-- 插件管理 end-->
<pluginManagement>
<plugins>
<groupId>xxxx</groupId>
<artifactId>xxxxxxx</artifactId>
<version>${plugin.version}</version>
</plugins>
</pluginManagement>
<!-- 插件管理 end-->
项目一大,pom 中的依赖冲突,版本管理混乱,还等什么,试着用起来吧!
参考文档:
https://www.cnblogs.com/ld-mars/p/11714151.html
https://zhangzw.com/posts/20210114.html
网友评论