Maven中的dependencyManagement 详解

大家好,我是酷酷的韩金群~

1.作用:
在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。

2.pom.xml文件中,jar的版本判断的两种途径:

(1)如果dependencies里的dependency自己没有声明version元素,那么maven就会到dependencyManagement里面去找有没有对该artifactId和groupId进行过版本声明,如果有,就继承它,如果没有就会报错,告诉你必须为dependency声明一个version。

(2)如果dependencies中的dependency声明了version,那么无论dependencyManagement中有无对该jar的version声明,都以dependency里的version为准。

3.dependencyManagement与dependencies区别:

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

(2)dependencyManagement里只是声明依赖,并不实现引入。

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

4.举例:

(1)只是对版本进行管理,不会实际引入jar :

<dependencyManagement> <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.17.0</version> </dependency> </dependencies>
</dependencyManagement>

(2)会实际下载jar包:

  <dependencies> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.17.0</version> </dependency>
</dependencies>

勇于开始,才能找到成功的路。 ------酷酷的韩~

Maven中的dependencyManagement 详解相关推荐

  1. Maven中pom文件详解

    在IDE中使用Maven IDE工具 MyEclipse 集成maven插件 Eclipse ​ Eclipse For Java EE IDEA 集成Maven插件 在IDE中 配置Maven 指定 ...

  2. Maven中scope标签详解

    概述 scope元素的作用:控制 dependency 元素的使用范围.通俗的讲,就是控制 Jar 包在哪些范围被加载和使用.具体值如下: compile:默认值.表示被依赖项目需要参与当前项目的编译 ...

  3. maven中profiles使用详解

    使用的场景 常常遇到一些项目中多环境切换的问题.比如在开发过程中用到开发环境,在测试中使用测试环境,在生产中用生产环境的情况.springboot中提供了 spring.profile.active的 ...

  4. Maven中settings文件详解

    一.自带的settings文件 二.元素说明 三.两种完整的settings文件 一.自带的settings文件 我们下载一个maven,在其config目录下,都会有一个settings.xml文件 ...

  5. JavaWeb中filter的详解及应用案例

    JavaWeb中filter的详解及应用案例 转载自:http://www.cnblogs.com/vanl/p/5742501.html 一:Filter介绍 Filter可认为是Servlet的一 ...

  6. Python中self用法详解

    Python中self用法详解 https://blog.csdn.net/CLHugh/article/details/75000104 首页 博客 学院 下载 图文课 论坛 APP 问答 商城 V ...

  7. protobuf前后端解析_前端后台以及游戏中使用google-protobuf详解

    前端后台以及游戏中使用google-protobuf详解 [TOC] 0.什么是protoBuf protoBuf是一种灵活高效的独立于语言平台的结构化数据表示方法,与XML相比,protoBuf更小 ...

  8. linux中mkdir命令含义,Linux中mkdir命令详解

    Linux中mkdir命令详解 linux mkdir用来创建目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. 1. 新建一个文件夹 one 2. 新建三个 ...

  9. idea中tomcat配置详解

    idea中tomcat配置详解 本篇文章主要介绍在idea下配置maven.tomcat.jdk的开发环境. 详细步骤: 1.Edit Configurations 2.Add New Tomcat ...

  10. Maven中央仓库发布详解

    Maven中央仓库发布详解 开通官方账号 注册 提交issue 按照提示步骤操作 准备工作 签名工具 配置Maven Setting.xml 上传jar包 修改项目pom.xml 仓库管理 开通官方账 ...

最新文章

  1. 30个java_java的30个目标
  2. nyoj 234 吃土豆
  3. IDEA设置自定义代码模板
  4. C#连接MySQL数据库 制作股票交易模拟程序
  5. JavaScript实现的水珠动画效果
  6. 【转】C#搭建Oauth2.0认证流程以及代码示例
  7. 硅谷观察者眼中的亚洲
  8. window.parent与window.opener的区别与使用
  9. Linux文本编辑器之vim
  10. linux文件查找-find和locate
  11. DOM对象和jquery对象相互转换
  12. pip install 出现报asciii码错误的解决
  13. ora 01033 linux,数据库ORA-01033错误解决办法
  14. Go Module 私有仓库:fatal: could not read Username for ‘https://xxx.com‘: terminal prompts disabled
  15. 找到小菇凉 (BFS)
  16. php 公众号管理系统源码,SmartWx微信公众号管理系统 v2.0
  17. u盘推荐知乎_市面上的U盘怎么选择?U盘那个牌子好?
  18. 小程序可以跟哪些行业做结合呢?
  19. 【图文】实操更换系统盘
  20. 怎么把PPT转成EXE格式,详细步骤

热门文章

  1. hadoop常见组件及其功能
  2. 乌龟git安装和使用
  3. 订单系统管理系统 开源_8个开源销售点系统
  4. multisim10中设置变压器匝数比的两种方法
  5. 使用DirectX播放wav声音文件
  6. 计算机辅助翻译入门编委,计算机辅助翻译入门简介,目录书摘
  7. Armv6 Armv7
  8. visio2003乱码问题
  9. nes 红白机模拟器 第4篇 linux 手柄驱动支持
  10. 使用DirectX播放音频数据流