Maven开发笔记(三)—— Maven中dependencies和dependencyManagement

1.dependency简介

dependency 元素用于定义对其他项目的依赖关系,其中,常见的子元素有:groupId , artifactId , version , type , scope , systemPath , optional , classifier , exclusions 等。其中,绝大部分元素,我们前面都有介绍过,这里就不一一赘述了。我们这里简要介绍一下 version 元素的多种表示方式。

version 有如下表示方式

  • 1.0 : 非硬性要求,只是一个建议
  • [1.0] : 硬性要求,版本必须为1.0
  • (,1.0] : x <= 1.0
  • [1.2,1.3] : 1.2 <= x <= 1.3
  • [1.0,2.0) :1.0 <= x < 2.0
  • [1.5,) :x >= 1.5
  • (,1.0],[1.2,) : x <= 1.0 or x >= 1.2,多个集合以逗号分隔
  • (,1.1),(1.1,) : 排除1.1版本号的其他版本

2.dependencies和dependencyManagement的区别概述

pom.xml 文件中,我们可以看到,dependenciesdependency 的父元素,而 dependencyManagement 又是 dependencies 的父元素,而 dependencies 元素的使用情况又分为两种,一种,dependencies 元素外没有 dependencyManagement 父元素,另一种,dependencies 元素外还存在 dependencyManagement 父元素。当然,两种使用情况可以在同一 pom.xml 文件中共存,因为二者的作用不同。

我们知道 dependency 元素是用来定义本项目对其他项目的依赖关系的。那么, dependenciesdependencyManagementdependency 的作用又有什么不同呢?从宏观上讲,dependencies 中的 dependency 元素下声明的依赖会被引入当前项目,而且在子项目中即使不写该依赖项,依旧会从父项目中继承该依赖项(全部继承),而 dependencyManagement 中的 dependencies 中的 dependency 元素下声明的依赖不会被引入当前项目,它仅仅是一个声明,如果在子项目中不写该依赖项,则不会从父项目中继承该依赖项,如果子项目真的需要引入该依赖,则在声明的时候,可以不用指定具体版本号,会自动继承父项目 dependencyManagement 中声明的版本号,从而实现了对依赖版本的统一管理。当然,如果子项目需要使用不同于父项目中声明的版本号,则需要在声明时指定版本号。

3.dependencyManagement小结

通过 dependencyManagement 元素,可以将项目的依赖关系细节收归一处,方便管理和升级。然而,我们在享受 dependencyManagement 元素带来的巨大便利的同时,需要特别注意的是,通过依赖传递而被引入的项目依赖的版本(version)和有效范围(scope)都会受到 dependencyManagement 元素中对应依赖的控制(如果存在对应依赖的话)。例如:项目A需要依赖项目B和项目C,项目A的 dependencyManagement 元素中声明了项目B的版本为1.0,如果此时项目C也依赖项目B,而且只有项目B的版本大于等于2.0,项目C才能运行。这时候,项目A中引入对项目B的依赖,其版本按照 dependencyManagement 中的声明为1.0版本,这时候就会导致项目不能正常运行。这一点,需要特别注意。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,665评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,263评论 25 708
  • 前言什么是 POMQuick Overview POM 常用元素 pom.xml 完整注释 参考 0 前言 什么是...
    阿父阅读 12,768评论 1 36
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,282评论 6 342
  • 《儒林外史》第四回,—《荐亡斋和尚契官司,打秋风乡绅遭横事》。 第四回,讲的是范进的母亲因为范进中举,家中物质条件...
    陌简莫曦阅读 196评论 1 0

友情链接更多精彩内容