一篇文章带你明白 maven 项目 pom.xml 中 parent 标签的使用

使用 maven 是为了更好的帮项目管理包依赖,maven 的核心就是 pom.xml

当我们需要引入一个jar包时,在pom文件中加上<dependency></dependency>就可以从仓库中依赖到相应的 jar 包。

现在有这样一个场景,有两个web项目A、B,一个java项目C,它们都需要用到同一个jar包:common.jar

如果分别在三个项目的pom文件中定义各自对 common.jar 的依赖,那么当 common.jar 的版本发生变化时,三个项目的 pom 文件都要改,项目越多要改的地方就越多,很麻烦。

这时候就需要用到parent标签, 我们创建一个parent项目,打包类型为 pom,parent 项目中不存放任何代码,只是管理多个项目之间公共的依赖。

在 parent 项目的 pom 文件中定义对 common.jar 的依赖,ABC三个子项目中只需要定义<parent></parent>,parent标签中写上parent项目的pom坐标就可以引用到common.jar了。

比如这里,子模块想调用父模块的依赖,就需要加入parent标签
在这里插入图片描述

上面的问题解决了,我们在切换一个场景,有一个springmvc.jar,只有AB两个web项目需要,C项目是java项目不需要,那么又要怎么去依赖。

如果AB中分别定义对springmvc.jar的依赖,当springmvc.jar版本变化时修改起来又会很麻烦。

解决办法是在parent项目的pom文件中使用<dependencyManagement></dependencyManagement>springmvc.jar管理起来,如果有哪个子项目要用,那么子项目在自己的pom文件中使用

<dependency>
    <groupId></groupId>
    <artifactId></artifactId>
</dependency>

标签中写上springmvc.jar的坐标,不需要写版本号,可以依赖到这个jar包了。

这样springmvc.jar的版本发生变化时只需要修改parent中的版本就可以了。

dependencyManagement里只是声明依赖,并不实现引入,
    因此子项目需要显式的声明需要用的依赖。
    如果不在子项目中声明依赖,是不会从父项目中继承来的;
    只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,
    并且version和scope都读取自父pom;
    另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。-->
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值