工具类:Maven父子多模块的依赖统一版本管理的理解

一、前言

    为了避免多个没的子模块中引入不同版本的依赖包,所以现在统一采用父子工程(或叫父子模块)的pom.xml组织方式,即有一个父工程,它这模块什么内容也没有,只有一个pom.xml文件,即它是一个专门管理依赖包的模块,并且pom.xml中的packaging 为pom,如下:

<packaging>pom</packaging>

父工程这个pom.xml一般只定义了各个依赖的版本号及包含哪些子模块,以及插件有哪些。

二、父模块是如何管理依赖的

   一般如果这个依赖有可能各个子模块均要用到时,才需要放到父模块的pom.xml中进行定义,如果子模块专有的依赖则放到子模块本身自己的pom.xml中进行声明定义。

    父模块中的pom.xml中一般是通过Maven 使用 dependencyManagement 来统一模块见的依赖版本问题,例如:

<dependencyManagement>    
    <dependencies>    
        <dependency>    
            <groupId>javax</groupId>    
            <artifactId>javaee-api</artifactId>    
            <version>${javaee-api.version}</version>    
        </dependency>    
    </dependencies>    
</dependencyManagement>

版本号可以定义在这个文件属性中,dependencyManagement只是定义了一版本号,其实它没有引入下载真正的依赖,只有子模块用到时,它才会下载引入到子模块中。记住:

此处 dependencyManagement 并不会直接引入依赖,是一种懒加载的方式

当然如果你在父模块中没有用dependencyManagement,而是只有dependencies,则相对于dependencyManagement,父类中直接使用所有生命在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。

三、总结:

1.如果多个子模块均会用到某一个依赖时,则放到父模块中进行声明版本号,再在本身子模块应用时再定义依赖关系,记得子模块也必须声明(只是不需要定义具体版本号了),不然不会引入。

2.如果依赖只在某个子项目中使用,则可以在子项目的pom.xml中直接引入,防止父pom的过于臃肿。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值