Maven项目中,为了保持引用依赖的一致性,一般会抽出一个parent层,用来管理子项目的maven依赖,对于依赖的管理有两种方式,分别是dependencies以及dependencyManagement,那么这两者有什么区别呢?

区别

两者都可以引入maven依赖,但是主要的区别有以下几点:

  • dependencyManagement引入的依赖在子项目中不会自动引入

使用dependencyManagement在parent中引入的依赖只是对依赖进行了一个声明,在子项目中需要使用相应的依赖时还是需要再次引入依赖的。

  • dependencies引入的依赖在子项目中会自动引入

使用dependencies引入的依赖,在子项目中会自动引入依赖,即使不在pom中声明依赖,子项目也会自动引入parent中声明的依赖。

  • dependencyManagement引入的依赖,子类可以对版本进行覆盖

dependencyManagement引入的依赖,在子类中进行声明时,可以不写版本号,此时会自动继承父类的版本号,但是如果需要定义一个新的版本,那么需要写上新的版本号,此时就会覆盖父类的版本。

优点

使用dependencyManagement管理maven依赖可以有以下几个优点:

  • 统一管理依赖版本以及作用域等,升级或者切换都比较方便;
  • 子类可以根据需要从父类中继承相应的jar包,而不是引入父类中所有的jar包;
  • 子类继承依赖时,不需要定义版本号和作用域。

Maven中dependencies和dependencyManagement的区别的更多相关文章

  1. Maven实战--- dependencies与dependencyManagement的区别

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

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

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

  3. Maven学习----dependencies与dependencyManagement的区别(转)

    转自:http://blog.csdn.net/liutengteng130/article/details/46991829 1.DepencyManagement应用场景 当我们的项目模块很多的时 ...

  4. pom文件中<dependencies>和<dependencyManagement>的区别

    在父pom中,如果使用了<dependencies>标签,那么在该标签体中的所有jar包,即使子工程中没有写这些依赖,依旧会引用. 如果使用了<dependencyManagemen ...

  5. maven中pom的继承以及dependencies与dependencyManagement的区别

    https://blog.csdn.net/zzm3280/article/details/84952623 分类专栏: maven   本文转自:https://blog.csdn.net/liut ...

  6. maven中的 dependencies 和 dependencyManagement 的区别

    今天我在配置 sellercenter 的接口测试环境的时候,发现一些依赖的写法不太一致: 比如有的依赖的<scope>是写在子项目中的 <dependencies> 下的&l ...

  7. Maven实战(六)--- dependencies与dependencyManagement的区别

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

  8. 【转】Maven实战(六)--- dependencies与dependencyManagement的区别

    原博文出自于:http://blog.csdn.net/liutengteng130/article/details/46991829   感谢! 在上一个项目中遇到一些jar包冲突的问题,之后还有很 ...

  9. package.json文件中dependencies和devDependencies的区别

    在工作和学习中,我经常会用的npm 下载各种包,有时就会遇到各种npm 的形式,现在就捋一捋 首先要先了解   package.json文件中dependencies和devDependencies的 ...

随机推荐

  1. Ubuntu 获取升级信息失败。可能网络有问题

    升级Ubuntu系统时遇到的这个问题, 原因是默认的源不是国内的,而且还可能导致下载慢等问题. 1.备份源 cd /etc/apt/ sudo cp sources.list sources.list ...

  2. 1、大数据 Hadoop配置和单机Hadoop系统配置

    #查看服务器ip ip add #设置主机名称 hostnamectl set-hostname master bash #查看 hostname #绑定ip vi /etc/hosts 添加 服务器 ...

  3. 太赞了!Python竟可以轻松实现音频格式无损转换

    大家好,我是辰哥 辰哥在平时处理音频格式的时候,需要去下载各种音频处理软件(专业一点的软件还要收费),掌握Python技术的我们,知道Python是万能的(哈哈哈,开个玩笑).今天辰哥就来教大家用Py ...

  4. [leetcode] 875. 爱吃香蕉的珂珂(周赛)

    875. 爱吃香蕉的珂珂 这题时间要求比较严格... 首先,将piles排序,然后二分查找. 总之,答案K肯定位于piles[?]piles[?+1]或者1piles[0]之间 所以我们先二分把?找到 ...

  5. openresty 学习笔记番外篇:python访问RabbitMQ消息队列

    openresty 学习笔记番外篇:python访问RabbitMQ消息队列 python使用pika扩展库操作RabbitMQ的流程梳理. 客户端连接到消息队列服务器,打开一个channel. 客户 ...

  6. LR: GLU-Net: Global-Local Universal Network for Dense Flow and Correspondences

    Abstract 在图像中简历稠密匹配是很重要的任务, 包括 几何匹配,光流,语义匹配. 但是这些应用有很大的挑战: 大的平移, 像素精度, 外观变化: 当前是用特定的网络架构来解决一个单一问题. 我 ...

  7. 如何使用Intel vtune profilier?

    如何使用Intel vtune profilier?

  8. 使用Vue写一个九九乘法表

    Vue.js是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. 下面是在Vue 测试实例 - 菜鸟教程(runoob.com)使用Vue写的一个九九乘法表, ...

  9. vue中dom节点转图片

    今天项目中有个需求,需要将页面的一部分转为图片,相当于存证之类的 然后我查阅了下百度,发现了几种可行的方法,特此来记录下 1.html2canvas插件 安装:npm install --save h ...

  10. httprunner的简介、httprunner做接口测试入门知识,使用httprunner模拟get请求及post请求

    一.httprunner的简介 HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试.性能测试.线上监控.持续集成等多种 ...