为什么需要继承机制?解决什么问题
①现状:
Hello依赖的Junit 4.0
HelloFriend依赖的是Junit4.0
MakeFriend依赖的是Junit4.9
由于test范围的依赖不能传递,所以必然会分散在各个模块工程中,很容易造成版本不一致。
②需求:统一管理各个模块工程中对Junit依赖的版本
③解决思路:将Junit依赖管理提取到“父”工程中,在子工程中声明Junit依赖时不指定版本,在父工程中统一设定的为准。同时便于修改。
④操作步骤:
- 创建一个Maven工程作为父工程,注意打包方式是pom
<groupId>com.zjc.maven</groupId> <artifactId>Parent</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>pom</packaging> |
- 在子工程中声明对父工程的引用
<parent> <groupId>com.zjc.maven</groupId> <artifactId>Parent</artifactId> <version>0.0.1-SNAPSHOT</version> <!-- 以当前文件为基准的父工程pom.xml文件的相对路径 --> <relativePath>../Parent/pom.xml</relativePath> </parent> |
- 将子工程测坐标与父工程坐标重复的内容删除
|
- 在父工程中统一Junit的依赖
<!-- 依賴的管理 --> <dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.0</version> </dependency> </dependencies> </dependencyManagement> |
- 在子工程中删除Junit依赖的版本号部分
注意:配置继承后要先安装父工程。
安装工程时需要一个个,有没有一键安装各个模块工程
②配置方式:
在一个总的聚合工程中配置各个参与聚合的模块(会识别依赖关系,顺序无关)
<modules> <module>teachingManagement-api</module> <module>teachingManagement-service</module> <module>teachingManagement-web</module> </modules> |
③在聚合工程的pom.xml上右键 maven install