maven继承

目录

1.父项目的搭建
2.子项目的搭建(继承关系)
3.子项目的搭建(聚合关系)
4.优雅的使用聚合关系管理jar包版本
1.父项目的搭建

新建一个Maven Project

勾选创建简单项目

编辑项目信息
以创建一个淘宝项目为例。

Group Id写公司名字
Artifact Id写父项目名或子模块名
Version写版本号
以上三个属性为一个项目的坐标,通过这个坐标即可定位一个项目。
Packaging为项目打包方式。
如果是父项目或者子项目还需要作为其他项目的父项目,必须选择pom选项;
如果子项目是java项目,选择jar选项;
如果子项目是web项目,选择war选项。
点击Finish完成创建,父项目的目录结构如下:

  1. 在父项目的pom.xml文件中添加如下依赖(用于后续讲解)
    记得是在 标签中添加。
org.springframework spring-webmvc 4.1.6.RELEASE 1 2 3 4 5 6 以上代码可在 Maven仓库 中找到。 保存后,这时在项目目录中并没有增加依赖相关的jar包,原因是因为这是一个父项目,之后如果有子项目继承该父项目或者该父项目下有Module项目,那么该子项目或Module项目便会自动添加依赖相关的jar包。

2.子项目的搭建(继承关系)

以创建淘宝项目的商品模块为例,大致步骤同上。
这里Parent Project需要勾选刚才创建的TaoBao父项目坐标。

在子项目的目录中,可以看到刚才父项目pom.xml文件中添加的依赖对应的jar包。这里不仅仅只添加了spring-webmvc jar包,还有其他支持spring-webmvc的jar包。

再看子项目的pom.xml文件

4.0.0 com.alibaba TaoBao 0.0.1-SNAPSHOT com.alibaba TaoBao-Shop 0.0.1-SNAPSHOT 1 2 3 4 5 6 7 8 9 10 11 其中除了自己的坐标外,还有标签包含的父项目的坐标。 这里子项目的groupId、version编译器会建议删除,因为与父项目相比只有artifactId不一样,其他都来自父项目,但如果希望与父项目不同,可以修改而不删除。 而在父项目的pom.xml文件中没有任何变化。 这种在子项目中引用父项目坐标创建的两个项目的关系就被称为继承关系。 稍后再做详述,下面我们来看聚合关系。

3.子项目的搭建(聚合关系)

以创建淘宝项目的购物模块为例,这次通过右键父项目创建该父项目的Maven Module。

点击Next,新的窗口同样勾选创建简单项目,Module Name写子项目名。

点击Finish。
这时看新的子项目目录结构和pom.xml文件,和刚才的子项目完全相同。
再看父项目目录结构,发现与新的子项目构成包含关系。

同时父项目的pom.xml文件,发现多了如下配置:

TaoBao-Trans 1 2 3 小节: 聚合关系的前提是继承关系,父项目会把子项目包含到父项目中; 聚合项目的子项目的类型必须是Maven Module而不是Maven Project; 具有聚合关系的父项目在pom.xml文件中会有module指向子项目; 聚合项目的父子关系比继承项目的父子关系强。 4.优雅的使用聚合关系管理jar包版本

下面将父项目pom.xml文件添加的依赖套上标签,如下:

org.springframework spring-webmvc 4.1.6.RELEASE 1 2 3 4 5 6 7 8 9 这时发现以继承和聚合关系创建的子项目都不再有父项目中的依赖,此时如果还想在子项目中有父项目的依赖,可在子项目中再添加依赖,但无需指定依赖的,而是由父项目来决定。 这是标签唯一的作用(或好处)。

小节:
标签用于声明在聚合项目中可能用到的标签,但子项目不会立即引入其中的依赖,而需要手动添加需要的依赖,但不需要声明依赖的版本。
下面再对父项目的pom.xml文件做优化,在上方添加标签,标签中的子标签名可以随意定义,假如写如下标签

4.1.6.RELEASE
1
然后替换spring-webmvc依赖的内容为${spring-version}(花括号中写刚刚定义的子标签名),最终pom.xml文件内容如下:

4.0.0 com.alibaba TaoBao 0.0.1-SNAPSHOT pom 4.1.6.RELEASE org.springframework spring-webmvc ${spring-version} TaoBao-Trans 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值