maven的基本使用2
1、maven的父工程
父子工程说白了就是利用Maven的继承,依赖传递性来为我们省略一些重复的配置。
父工程有且仅有一个pom文件,用来做坐标的版本管理以及引入坐标;打包方式必须为pom,即:<packaging>pom</packaging>。
父子工程作用:
- 统一管理jar包的版本
- 统一的依赖管理
- 控制插件的版本
- 聚合工程
在父工程中,pom.xml 配置中的 <dependency> 中的所有的 jar 包都会被该子工程所继承,子工程无需在 pom.xml 文件中配置任何依赖,都会把 parent 所依赖的jar依赖进去。另外,父子工程也可以做到按需继承,在父工程中的 <dependencyManagement> 标签内的包是不会自动继承的,子工程需要显示地去引入这些包才会继承,但无需指定具体版本,默认会使用父工程中指定的版本。
如下:
<!-- 父工程使用dependencyManagement示例 --> <dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </dependencyManagement>
springboot 示例:
<?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>
参考:https://blog.csdn.net/qq_41254677/article/details/81011681、https://blog.csdn.net/chenqiao5577/article/details/100791195
2、maven多模块管理
参考:https://blog.csdn.net/BUCTOJ/article/details/108851118