原文网址:maven--依赖的管理(dependencyManagement)_IT利刃出鞘的博客-CSDN博客

简介

本文介绍maven的dependencyManagement的用法。

使用场景

项目中有这种场景:通过父模块来指定依赖的版本号。通常,我们会使用<parent></parent>来指定父级模块(比如:spring-boot-starter-parent),但只能指定一个父级,如果有很多依赖,将依赖都写到一个父级模块儿是不合适的。

解决方法就是:使用dependencyManagement,它可以引入多个父级依赖。

用法

父模块:

    <dependencyManagement><dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.44</version></dependency></dependencies></dependencyManagement>

子模块中只需要<groupId>和<artifactId>即可,如:

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

说明

使用dependencyManagement可以统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,不用每个模块项目都弄一个版本号,不利于管理,当需要变更版本号的时候只需要在父类容器里更新,不需要任何一个子项目的修改;如果某个子项目需要另外一个特殊的版本号时,只需要在自己的模块dependencies中声明一个版本号即可。子类就会使用子类声明的版本号,不继承于父类版本号。

与dependencies区别

Dependencies

所有声明在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。

dependencyManagement

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

常用的依赖管理

<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.0.1.RELEASE</version><type>pom</type><scope>import</scope></dependency><dependencies>
</dependencyManagement>
<dependencyManagement><dependencies><!-- Apache Dubbo  --><dependency><groupId>org.apache.dubbo</groupId><artifactId>dubbo-dependencies-bom</artifactId><version>${dubbo.version}</version><type>pom</type><scope>import</scope></dependency><dependencies>
</dependencyManagement>
    <dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Finchley.SR1</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

maven--依赖的管理(dependencyManagement)相关推荐

  1. maven依赖管理_依赖管理和Maven

    maven依赖管理 Maven伟大而成熟. 几乎所有事物都总有解决方案. 您可能在组织项目上遇到的主要情况是依赖管理. 而不是每个项目都具有自己的依赖关系,您需要一种集中的方式来继承那些依赖关系. 在 ...

  2. Maven 父pom中dependencyManagement版本优先级高于传递依赖版本

    当使用了传递依赖,也就是使用了没有显示声明的依赖时,如果继承的<dependencyManagement/>中声明了使用的传递依赖的版本,那么最终使用的依赖是<dependencyM ...

  3. Maven 依赖管理(依赖范围/排除/原则)

    Maven 一个核心的特性就是依赖管理.当我们处理一个或多模块的项目时,模块间的依赖关系就变得非常复杂,管理也变得很困难.针对此种情形,Maven 提供了一种高度控制的方法. 一.依赖配置 依赖是 M ...

  4. [笔记]解决m2eclipse给项目添加maven依赖管理时可能不给项目的build path...

    为什么80%的码农都做不了架构师?>>>    解决办法:在m2eclipse提供的菜单里关闭项目的Maven依赖管理,然后再启动Maven的依赖管理!!! 检查:1)查看项目的.c ...

  5. eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法

    eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法 参考文章: (1)eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法 ...

  6. Maven中dependencies与dependencyManagement的区别

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

  7. maven依赖范围_Maven依赖范围

    maven依赖范围 介绍: 管理依赖关系是Maven的核心功能. 定义Maven依赖项时, scope属性定义了该依赖项在不同的Maven生命周期阶段(例如build,test和run)上的可见性. ...

  8. Maven依赖配置和依赖范围

    文章目录 1.美图 2.参考 3.概述 4.依赖的配置 5.依赖的范围 5.1 compile 5.2 test 5.3 provided 5.4 runtime 5.5 system 5.6 imp ...

  9. 【Java从0到架构师】Maven - 依赖冲突、分模块构建项目

    SpringBoot - Maven 补充 依赖冲突 解决方案 - dependencyManagement 自定义属性 分模块构建项目 继承 - parent 聚合 - modules 依赖 - d ...

  10. 急~为啥我指定的的maven依赖版本没有生效?不是最短路径原则吗?

    女朋友他们项目用了 spring-boot,以 spring-boot-parent 作为 parent: <parent><groupId>org.springframewo ...

最新文章

  1. LeetCode简单题之删除某些元素后的数组均值
  2. Vue2.x开发饿了么项目(header部分)
  3. 洛谷P3810 【模板】三维偏序(陌上花开) CDQ分治初探
  4. SQL Server Management Studio Express出现一半中文一半英文的问题
  5. 传京东副总裁蒉莺春或将接管POP业务-搜狐IT
  6. Atitit 数据join 的原理与java实现 Atitit join表连接的原理与实现 13、SQL Server 表连接的三种方式   (1) Merge Join   (2) Nested
  7. 湖南大学操作系统期末考试之英文PPT复习提纲
  8. 安卓脚本用什么写_什么是抖音脚本?脚本有什么用?
  9. 计算机教师的人生格言,教师人生格言大全
  10. python贪吃蛇游戏设计_利用python实现简易版的贪吃蛇游戏(面向python小白)
  11. 10个热门大数据发展趋势
  12. excel提取数字的方法
  13. 流程图软件lauto_Iauto流程软件
  14. Silicon单片机芯片解密
  15. 中兴c600olt数据配置_中兴OLT配置脚本
  16. uni-app中picker组件的“取消”“完成”国际化,能变成英文
  17. 论文阅读:Recurrent Neural Networks for Time Series Forecasting Current Status and Future Directions
  18. CTF之懵懂时期系列---后台登录
  19. 计算机毕业设计ssm动漫交流与推荐分析系统633g7系统+程序+源码+lw+远程部署
  20. C语言求二维数组鞍点

热门文章

  1. mysql备注乱码,简单解决办法
  2. java 生成操作excel文件_Java生成和操作Excel文件
  3. PPT文件删除打印限制
  4. php 中括号 属猪,2018年属猪和什么生肖相冲
  5. HDUOJ_1196(二进制-十进制)
  6. 怎么修改图片长宽尺寸?如何用电脑修改照片尺寸?
  7. Linux极速上手,超全面总结
  8. weblogic Unable to obtain lock on
  9. (简单)华为荣耀9i LLD-AL20的Usb调试模式在哪里开启的方法
  10. [HEOI 2014] 人人尽说江南好