Maven中的dependencyManagement和dependencies

在maven中这两个标签长的很相似,dependencyManagement很眼熟也是使用过,但是不知道二者之间的具体区别,这一次做一个辨析

  • dependencyManagement

使用maven进行多模块的依赖管理时,dependencyManagement可以保证父模块下面的所有子模块所引用的包的版本是一致的,这句话比较长,下面举个例子:

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>      
        </dependencies>
</dependencyManagement>

子模块中只需要groupid和artifactId即可,如:

 <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
 </dependencies>

在父模块中使用dependencyManagement标签进行依赖的声明,只是一个声明,子模块如果继承了父模块,不会自动引入父模块中dependencyManagement下面的依赖,如果需要使用,那么子模块需要显式的进行声明,但只需要声明除了版本之外的其他因素就可以了,版本号不需要进行声明,全部使用父模块中规定的版本号,这样就可以达到在所有子模块中控制依赖版本统一的效果
当然,如果不想使用父模块中的版本,那么可以在子模块中单独声明,这时maven会以子模块中的为准

  • dependencies

和dependencyManagement不同的是,如果在父模块中的所以依赖均使用dependencies标签进行声明,那么所有子模块会自动的引入父模块中的全部依赖,如果这样,那么子模块中可能会引入一些自己用不到的依赖,和上面的定制化的方式相比起来劣势很明显

评论 1 您还未登录,请先 登录 后发表或查看评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

皮带秀柚揪

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值