今天在maven的pom文件中看到了dependencyManagement标签,用法如下:

<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud-version}</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

为什么要使用这个呢?maven官方给出的解释是:为了统一模块之间的依赖的版本。
有以下特点:

  • 在父pom文件中声明
  • 子模块中需要显式的声明,才会继承该依赖。
  • 子模块如何需要继承该依赖,不需要指明版本,直接从父pom中获取版本号。

举个?:

顶层的父pom.xml文件:

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

子模块中的pom.xml

<!--继承父类-->
<parent>  <artifactId>父artifactId</artifactId>  <groupId>父groupId</groupId>  <version>父version</version>  <relativePath>父pom.xml的相对路径</relativePath>
</parent>
<!--依赖关系-->
<dependencies>  <dependency>  <groupId>javax</groupId>  <artifactId>javaee-api</artifactId></dependency>
</dependencies>

dependencies与dependencyManagement区别总结

1、dependencies即使在子项目中不写该依赖项,那么子项目仍然会从父项目中继承该依赖项(全部继承)

2、dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显示的声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来的;只有在子项目中写了该依赖项,并且没有指定具体版本,才会从父项目中继承该项,并且version和scope都读取自父pom;另外如果子项目中指定了版本号,那么会使用子项目中指定的jar版本。

Maven实战 | dependencies与dependencyManagement相关推荐

  1. 转载:Maven实战—Dependencies与DependencyManagement的区别

    致敬作者,支持原创.原文地址:https://www.cnblogs.com/feibazhf/p/7886617.html 在上一个项目中遇到一些Jar包冲突的问题,之后还有很多人分不清楚Depen ...

  2. Maven中dependencies与dependencyManagement的区别

    之前在一个开源项目代码中看到有人在maven的依赖中使用 dependencyManagement,由于对这个不是很了解,忽然发现网上有个大神已经写了一个比较好的博客,因此这里直接转载(https:/ ...

  3. maven 中 dependencies 与 dependencyManagement 的区别

    前言 当前的团队工程项目是一个 maven 工程,里面有多模块,包含了父 pom 与子 pom.而在父 pom 中,我见到了 dependencyManagement 这个东西.我们知道一个 mave ...

  4. MAVEN dependencies与dependencyManagement的区别

    在上一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别,本篇文章将这些区别总结下来. 1.DepencyManagem ...

  5. maven中的dependencies与dependencyManagement 对依赖管理的区别

    1. dependencyManagement对所依赖jar包进行版本管理, 而dependencies中的jar直接加到项目中. 2. dependencies即使在子项目中不写该依赖项,那么子项目 ...

  6. 《Maven实战》读书笔记

    目标 主要介绍maven的基本概念和工作机制,基于Maven实战 坐标和依赖 依赖管理的基础是坐标,maven仓库也基于maven坐标管理 坐标 maven的坐标包括groupId.artifactI ...

  7. Maven实战与原理分析(一):maven超全使用指南总结

    maven package和maven install 有什么区别? 你常用的maven命令有哪些? <dependencyManagement> 是干什么的? 还有用过其它构建工具吗? ...

  8. Maven实战:Maven生命周期

    前言 之前有写过一篇文章Maven实战,介绍了Maven的一些基本概念,以及对于一个初学者而言的Maven基础知识,当时在我看来掌握了这些基本是够用的. 随着工作的深入,越来越感觉对于Maven的理解 ...

  9. dependencies与dependencyManagement的区(转自:http://blog.csdn.net/liutengteng130/article/details/46991829)

    在上一个项目中遇到一些jar包冲突的问题,之后还有很多人分不清楚dependencies与dependencyManagement的区别,本篇文章将这些区别总结下来. 1.DepencyManagem ...

最新文章

  1. 推荐 6 个好用到爆的 Pycharm 插件
  2. 计算机应用教程 中级 平装,计算机应用中级教程
  3. c语言中malloc分配矩阵,malloc,分配矩阵
  4. 【freemaker】之include,import区别
  5. python函数设置默认参数_Python教程如何设置函数的默认参数
  6. android 学习查阅笔记
  7. 一个路由器两个网段互通_如何判断两个IP地址是否在同一个网段?什么是子网掩码?...
  8. C++ lower_bound 与 upper_bound 函数
  9. nuxt 全局css_解决nuxt 自定义全局方法,全局属性,全局变量的问题
  10. Vue_案例_初始化显示_采用组件化编写页面_实现组件间通信---vue工作笔记0022
  11. 中key的用途_Python中的函数定义与参数使用
  12. java day of month_Java LocalDateTime getDayOfMonth()用法及代码示例
  13. 苹果被拒:Guideline 2.3.10 - Performance - Accurate Metadata
  14. 连接NI采集箱9181与9184
  15. win7下安装vc6.0(sp5,sp6补丁安装)
  16. matlab 最优资产组合,基于MATLAB的最优投资组合问题.pdf
  17. 拉卡拉遭联想控股减持:套现3亿 总经理陈烈辞职
  18. 运用yolov5人脸识别模型生成标准的一寸照视频
  19. ibm是被联想收购了吗_联想的现状,让人不得不佩服当年IBM的老辣
  20. 转载_进程、轻量级进程(LWP)、线程

热门文章

  1. Linux下的tar压缩解压缩命令详解(转)
  2. 在web3上搭建ecshop网上商城
  3. C#制作Windows service服务系列二:演示一个定期执行的windows服务及调试(windows service)(转载)...
  4. NetBeans 时事通讯(刊号 # 74 - Sep 30, 2009)
  5. JavaScript 设计模式核⼼原理与应⽤实践之单例模式——Vuex的数据管理哲学
  6. Cassandra 简介
  7. TypeScript 类(Class)
  8. 如何在CentOS 7.x / RHEL 7.x上搭建Docker Private Registry(Docker私有仓库)
  9. 思科命令 service password-encryption
  10. 1,2,3……,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解。