Maven中的DependencyManagement和Dependencies
2016-05-06 14:10
169 查看
这里介绍一个在父项目中的根结点中声明dependencyManagement和dependencies的区别
dependencyManagement
Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。使用pom.xml 中的dependencyManagement 元素能让所有在子项目中引用一个依赖而不用显式的列出版本号。Maven 会沿着父子层次向上走,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用在这个dependencyManagement 元素中指定的版本号。
例如在父项目里:
Xml代码
<dependencyManagement>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.2</version>
</dependency>
...
<dependencies>
</dependencyManagement>
然后在子项目里就可以添加MySQL-connector时可以不指定版本号,例如:
Xml代码
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
这样做的好处就是:如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改 ;另外如果某个子项目需要另外的一个版本,只需要声明version就可。
dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显式的声明需要用的依赖。
dependencies
相对于dependencyManagement,所有声明在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。相关文章推荐
- linux usb光驱挂载报错
- Path类介绍
- shell之sed命令大全
- 替换函数的宏定义用法
- 百度地图加载海量点、聚合
- JS-charts
- nat123 外网远程内网公司服务器
- 第十、十一周项目-阅读程序,写出这些程序的运行结果(1)
- Effective Java学习--第16条:复合优先于继承
- Perl打印输出二进制文件
- 批处理命令forfiles语法的实例详解
- APICloud-端JS库功能API文档(1)
- 将焦点放到某一列上
- LNMP(linux+nginx+mysql+php)服务器环境配置
- keepalived实现高可用
- 第一个Struts入门例子
- STM32串口设定流程总结
- WSGI接口
- Torch7深度学习教程(三)
- 学习总结 Java 基本数据类型 和标识符以及常用的关键字