第3章 Maven项目聚合
在后续的开发中,我们会将项目拆分成多个子项目,这多个子项目共同协作完成一个大的整体项目,此时就必须统一这所有子项目的依赖版本。Maven父项目就是用来统一管理所有子项目的依赖版本的
3.1 创建Maven父项目
步骤1:
步骤2:
步骤3:
步骤4:删除父项目的src目录,父项目只负责管理依赖,不负责编码
步骤5:修改父项目的pom.xml
注意,在dependencyManagement元素中配置的依赖,仅仅是为了指定依赖的版本,并不会去下载任何依赖的
3.2 创建子项目
创建子项目:mars-user
mars-user的pom.xml,注意mysql依赖并没有指定版本,版本由父项目决定
<?xml versinotallow="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:schemaLocatinotallow="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>mars-parent</artifactId>
<groupId>com.gao</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mars-user</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
</project>
创建子项目:mars-car,注意mysql依赖并没有指定版本,版本由父项目决定
mars-car的pom.xml
<?xml versinotallow="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:schemaLocatinotallow="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>mars-parent</artifactId>
<groupId>com.gao</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>mars-car</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
</project>
3.3 子项目依赖版本优先
如果子项目自己指定了依赖的版本,则优先使用子项目自己执行的版本