up:: Maven MOC tag::继承 dates:: 2023-09-08
继承如同 Java 的继承一般,子类继承父类的属性,最大程度的消除重复。
假如有 A,B两个模块都需要 spring-core
2.0 版本的依赖,正常的做法就是在两个模块中分别声明同一个 spring-core
依赖。
使用继承消除重复配置,新建一个模块 C
,修改打包方式为 pom (与Maven 聚合操作一致),接着引入 spring-core
依赖,即可。这时 A,B 模块只需要继承 C 的 pom 即可,代码如下。
引入 C 模块的坐标信息,并使用 relativePath
指向 C 模块的 pom 文件路径。Maven 会首先根据 relativePath
找 pom,找不到就去本地仓库找,如果不配置 realtivePath,那默认值是 ../pom.xml
,也就是说 Maven 默认父模块在当前模块的上一层目录。
在上面的例子中 A,B 模块可以不用声明 gruopId 和 version,这些信息都从 C 模块中继承过来了,如果子模块要使用自己的 groupId 和 version 直接显示的声明即可。
- 父类的哪些元素可以继承,可以查看 可继承的父类 pom元素。
- 子类可以选择继承部分父类依赖,可以参考选择性继承。