maven--依赖的管理(dependencyManagement)
原文网址: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)相关推荐
- maven依赖管理_依赖管理和Maven
maven依赖管理 Maven伟大而成熟. 几乎所有事物都总有解决方案. 您可能在组织项目上遇到的主要情况是依赖管理. 而不是每个项目都具有自己的依赖关系,您需要一种集中的方式来继承那些依赖关系. 在 ...
- Maven 父pom中dependencyManagement版本优先级高于传递依赖版本
当使用了传递依赖,也就是使用了没有显示声明的依赖时,如果继承的<dependencyManagement/>中声明了使用的传递依赖的版本,那么最终使用的依赖是<dependencyM ...
- Maven 依赖管理(依赖范围/排除/原则)
Maven 一个核心的特性就是依赖管理.当我们处理一个或多模块的项目时,模块间的依赖关系就变得非常复杂,管理也变得很困难.针对此种情形,Maven 提供了一种高度控制的方法. 一.依赖配置 依赖是 M ...
- [笔记]解决m2eclipse给项目添加maven依赖管理时可能不给项目的build path...
为什么80%的码农都做不了架构师?>>> 解决办法:在m2eclipse提供的菜单里关闭项目的Maven依赖管理,然后再启动Maven的依赖管理!!! 检查:1)查看项目的.c ...
- eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法
eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法 参考文章: (1)eclipse中用maven多模块管理,然后主项目无法调用其他被依赖项目里的方法,解决办法 ...
- Maven中dependencies与dependencyManagement的区别
之前在一个开源项目代码中看到有人在maven的依赖中使用 dependencyManagement,由于对这个不是很了解,忽然发现网上有个大神已经写了一个比较好的博客,因此这里直接转载(https:/ ...
- maven依赖范围_Maven依赖范围
maven依赖范围 介绍: 管理依赖关系是Maven的核心功能. 定义Maven依赖项时, scope属性定义了该依赖项在不同的Maven生命周期阶段(例如build,test和run)上的可见性. ...
- Maven依赖配置和依赖范围
文章目录 1.美图 2.参考 3.概述 4.依赖的配置 5.依赖的范围 5.1 compile 5.2 test 5.3 provided 5.4 runtime 5.5 system 5.6 imp ...
- 【Java从0到架构师】Maven - 依赖冲突、分模块构建项目
SpringBoot - Maven 补充 依赖冲突 解决方案 - dependencyManagement 自定义属性 分模块构建项目 继承 - parent 聚合 - modules 依赖 - d ...
- 急~为啥我指定的的maven依赖版本没有生效?不是最短路径原则吗?
女朋友他们项目用了 spring-boot,以 spring-boot-parent 作为 parent: <parent><groupId>org.springframewo ...
最新文章
- LeetCode简单题之删除某些元素后的数组均值
- Vue2.x开发饿了么项目(header部分)
- 洛谷P3810 【模板】三维偏序(陌上花开) CDQ分治初探
- SQL Server Management Studio Express出现一半中文一半英文的问题
- 传京东副总裁蒉莺春或将接管POP业务-搜狐IT
- Atitit 数据join 的原理与java实现 Atitit join表连接的原理与实现 13、SQL Server 表连接的三种方式 (1) Merge Join (2) Nested
- 湖南大学操作系统期末考试之英文PPT复习提纲
- 安卓脚本用什么写_什么是抖音脚本?脚本有什么用?
- 计算机教师的人生格言,教师人生格言大全
- python贪吃蛇游戏设计_利用python实现简易版的贪吃蛇游戏(面向python小白)
- 10个热门大数据发展趋势
- excel提取数字的方法
- 流程图软件lauto_Iauto流程软件
- Silicon单片机芯片解密
- 中兴c600olt数据配置_中兴OLT配置脚本
- uni-app中picker组件的“取消”“完成”国际化,能变成英文
- 论文阅读:Recurrent Neural Networks for Time Series Forecasting Current Status and Future Directions
- CTF之懵懂时期系列---后台登录
- 计算机毕业设计ssm动漫交流与推荐分析系统633g7系统+程序+源码+lw+远程部署
- C语言求二维数组鞍点