1、maven的父工程
父子工程说白了就是利用Maven的继承,依赖传递性来为我们省略一些重复的配置。父工程有且仅有一个pom文件,用来做坐标的版本管理以及引入坐标;打包方式必须为pom:<packaging>pom</packaging>。
一般来说,就是在父工程中定义各个依赖的版本,子工程中使用这些依赖即可无需指定版本,这样可避免版本冲突问题。注意,在子工程中使用父工程已定义的依赖仍需显式定义才行。
- 统一管理jar包的版本,其依赖需要在子工程中定义才有效
- 统一的依赖管理
- 控制插件的版本
- 聚合工程
示例:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>springbootTest01</artifactId> <version>1.0-SNAPSHOT</version> <!-- 所有的springboot的工程都以spring父工程为父工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.6.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> </project>