前言
Maven项目分模块开发
Maven模块之间的依赖
将其他模块打包到Maven本地仓库
将其他模块引入到当前模块
pom.xml
1 2 3 4 5
| <dependency> <groupId></groupId> <artifactId></artifactId> <version></version> </dependency>
|
Maven模块的聚合
- 将多个模块组织成一个整体,同时进行项目构建的过程成为聚合
- 聚合工程:通常是一个不具有业务功能的空工程(有且仅有一个
pom.xml
文件)
- 与继承的区别:聚合是在父模块中配置所有管理的子模块,聚合通常是用于做构建管理的
创建聚合工程
- 构建聚合工程时,根据依赖关系,依次构建
<module></module>
指定的子模块
<packaging>pom</packaging>
:设置模块的打包方式为pom
<module></module>
:通过相对路径指定被管理的子模块路径
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <?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>com</groupId> <artifactId>ParentMavenDemo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging>
<modules> <module>../MavenDemo</module> </modules>
</project>
|
Maven模块的继承
- 继承:继承描述的是两个模块之间的关系,子模块可以继承父模块中的配置信息,常见于依赖关系的继承
- 与聚合的区别:继承是在每一个子模块中指定继承的父模块,继承通常是用于做配置管理的
创建父模块
<dependencies></dependencies>
:这里定义的依赖,子模块会强制继承,通常在这里定义公共的依赖
<dependencyManagement></dependencyManagement>
:这里定义的依赖,子模块可根据选择继承。子模块中需要定义依赖的groupId和artifactId,不需要定义version,version由父模块定义
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?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>com</groupId> <artifactId>ParentMavenDemo</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging>
<dependencies> ... </dependencies>
<dependencyManagement> <dependencies> ... </dependencies> </dependencyManagement>
</project>
|
创建子模块
<parent></parent>
:指定父模块
<relativePath></relativePath>
:通过相对路径指定父模块的路径
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <?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>com</groupId> <artifactId>MavenDemo</artifactId> <version>1.0-SNAPSHOT</version>
<parent> <groupId>com</groupId> <artifactId>ParentMavenDemo</artifactId> <version>1.0-SNAPSHOT</version> <relativePath>../ParentMavenDemo</relativePath> </parent>
</project>
|
完成
参考文献
哔哩哔哩——黑马程序员