1、maven 工程间的继承关系(例如,统一管理各个工程之中对 junit 依赖的版本)
a、之前创建的三个 maven 工程的现状:
Hello 依赖的 junit :4.0
HelloFriend 依赖的 junit:4.0
MakeFriends 依赖的junit:4.9
注:由于 test 的依赖范围不能够传递,所以必须在各个工程中明确声明使用 junit 依赖的版本和 jar 包名。
b、为了解决这类问题,需要在 maven 中引入我们现在所说 maven 工程间的继承关系。首先需要创建一个父工程,父工程之下有 Helllo、HelloFriend 和 MakeFriends 三个子工程。(需要注意,创建父工程需要使用 pom 的 包生成方式)
c、在子工程中声明对父工程的引用:
注:../ 为跳转到当前文件的上级目录中。此时在左侧出现了提示,当前工程的 groupId 和 version 和
父工程有重复,可以删除。在 HelloFriend 和 MakeFriends 的 pom.xml 文件中分别加入以上配置。
d、在父工程中统一管理 junit 的依赖:
注:在Parent/pom.xml 中统一管理 junit 的依赖时需要使用 dependencyManagement 标签。
e、可以看到,在 三个子工程的 pom.xml 文件中已经有提示,是否重载 junit 4.9 的版本。(也就是可以将这行配置删除。)
f、现在将 Parent/pom.xml 文件中配置的 junit 依赖的版本该为 4.0,可以看到子工程引用的 jar 包中也有了相应的修改。
需要注意的是,在将 maven 工程安装进 本地仓库中时,需要先导入父工程,后导入子工程。
2、maven 工程的聚合关系(一次性将所有 maven 工程导入到 本地仓库中。)
a、应用场景:maven 模块工程较多,一个一个导入比较麻烦。
b、配置:(在父工程中的 pom.xml 文件中配置 )
c、可以看到,当对父工程执行安装命令时, 子工程也会随之安装在本地仓库中。