继承
A工程继承B工程,本质上是A工程的pom.xml文件继承了B工程的pom.xml文件的配置。
作用:在父工程中统一管理项目中的依赖信息,具体来说是管理依赖信息的版本。
只有打包方式为pom的Maven工程能够管理其他的Maven工程
<groupId>com.springCloudAlibabaDemo</groupId>
<artifactId>clouddemo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>clouddemo</name>
<description>com.springCloudAlibabaDemo</description>
<!-- 打包为pom形式-->
<packaging>pom</packaging>
IDEA中project与module之间的关系
在父工程中新建子工程完毕后,会在父工程的pom.xml文件中自动添加新的标签。
聚合
modules/module配置聚合,所有子工程的列表
<modules>
//子工程一
<module>OrderService</module>
//子工程二
<module>stockService</module>
</modules>
子工程的pom.xml文件会自动新增,对父工程的继承声明。
<parent>
<artifactId>clouddemo</artifactId>
<groupId>com.springCloudAlibabaDemo</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
父工程中管理依赖通过dependencyManagement标签。
dependencyManagement和dependencies标签不同。dependencies能够把依赖jar包真正引入到当前工程。dependencyManagement仅仅能管理依赖信息,并不正在引入
<!-- 在父工程中通过dependencyManagement管理依赖版本-->
<dependencyManagement>
<dependencies>
<!--Springboot基本场景启动-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!--Springboot测试启动器-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
此时如果子工程中想使用其他版本依赖,只要引入该依赖,并且声明版本即可。如果没有声明版本,则依然使用父工程提供的依赖。
自定义版本标签,使其一处修改,处处修改
<properties>
<java.version>1.8</java.version>
<!-- 自定义标签 -->
<springDemo.version>4.3.0.RELEASE</springDemo.version>
</properties>
引用时使用${}引用。
<!-- 引用自定义标签 -->
<version>${springDemo.version}</version>
Maven工程之间也是单继承。
举例:4是父工程
5、6、7是子工程,5又依赖6、6又依赖7.
则4工程工程的启动顺序,为4、7、6、5.
有父工程优先启动父工程、有依赖工程,则优先启动依赖。