最佳实践
受Spring Boot Dependencies启发,自建公司的bom文件。
- 一般jar依赖于版本管理(重点)
- 插件及其版本管理(如果通过dependencyManagement方式引入,那么不继承,需要在项目中重新声明版本和其他配置项;如果声明为父pom parent标签,那么在父子模块之间可以继承)
- 全局变量(不继承,需要在项目中重新声明版本;仅在当前模块有效)
bom文件内容格式组织
为了便于维护依赖与版本的管理,可做如下约定:
- 版本变量声明和依赖声明按ASCII码顺序编写
- 分组有多种方式,如:用户团队、商品团队;国内、国外;spring体系、google体系等
使用方式
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.4.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
或者(两者略微有些差别):
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.0.4.RELEASE</version>
</parent>
参考资料
- https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html
- https://spring.io/projects/platform
- https://docs.spring.io/spring-boot/docs/2.0.4.RELEASE/reference/html/using-boot-build-systems.html#using-boot-maven-without-a-parent
- http://repo1.maven.org/maven2/org/springframework/boot/spring-boot-dependencies/2.0.4.RELEASE/spring-boot-dependencies-2.0.4.RELEASE.pom