sprig-boot-starter-parent是一个特殊starter,统一管理SpringBoot项目的Maven依赖,在后续项目的使用中,可以通过依赖父类项目省去常用依赖包<version>标签。使用方式实例如下:
- 新建一个Maven项目,步骤略;
- 在pom.xml添加<parent>标签引用依赖sprig-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
<!-- 常用依赖 -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
- 在创建其他项目时,只需添加<parent>标签引用parent项目,其他在parent已声明的依赖可以不添加<version>标签,若添加<version>则按当前的version。
<parent>
<groupId>org.ocfunc</groupId>
<artifactId>parent</artifactId>
<version>1.0.0.RELEASE</version>
</parent>
<!-- 添加eureka server依赖 -->
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
/** 小白解读时间,若有不妥之处,望请不吝赐教 **/
个人觉得何时使用spring-boot-starter-parent取决于自身项目结构和源码管理的方式,常用的源码管理工具有SVN和Git。
如果对于项目对于一般项目复杂度不高且对源代码管理没有过多要求的时候,使用spring-boot-starter-parent会显得比较累赘,因为一般我们在使用IDEA开发时候,创建或开发Maven Module项目时,其目录结构比较清晰,而且Maven Module已具备子类服务可直接使用父类依赖的包,无需而外添加。
但对于迭代频繁,且对分支管理有一定要求的,使用spring-boot-starter-parent可以帮助我们保证引用的一致性,避免因依赖版本不同而踩坑,毕竟开发不是一个人的活,特别在协同开发还不是规范的团队中,统一管理、维护依赖包还是很必要的。
近看spring-boot-starter-parent只是涉及一个<parent>标签和<version>标签的问题,但个人认为其实本质是对项目源码构建和维护的一种补充,何时用?合适用,最终还是取决于我们项目自身的需要。