Maven排除依赖exclusion用法
假设有如下依赖:
A->B->C(1.0)
项目B依赖了项目C的1.0版本,由于项目C比较活跃,此时已经升级了好几个版本,比如已经升级到了4.0版本。由于依赖的传递性,根据此依赖链:A->B->C(1.0),A项目默认会加载C的1.0版本,如何使用C的4.0版本呢?我们在对B的依赖声明中将C排除,然后显示的声明依赖C的4.0版本。
pom配置如下:

<dependencies><dependency><groupId>org.example</groupId><artifactId>project-b</artifactId><version>1.0.0</version><exclusions><exclusion><groupId>com.domain</groupId><artifactId>project-c</artifactId></exclusion></exclusions></dependency><dependency><groupId>com.domain</groupId><artifactId>project-c</artifactId><version>4.0.0</version></dependency>
</dependencies>

有的人可能发现了,其实没必要用什么exclusion,直接声明对project-c的依赖,根据最短路径原则,就会直接依赖project-c的4.0.0版本,确实存在这么个问题,但是使用了exclusion标签,其语义上会更明确。
如果上面的例子不足以说服你,那么下面这种情况,就真的需要使用exclusion标签了。
假如C项目是一个很强大的项目,拥有众多功能,但是我只需要用它的一部分,就可以满足项目需要了,如果C的强大功能是因为加载了众多依赖实现的,那么我们可以对C的依赖进行排除,只保留我们需要的部分即可。

Maven排除依赖exclusion用法相关推荐

  1. Maven 排除依赖jar包

    当我们引入第三方jar包的时候,难免会引入传递性依赖,有些时候这是好事,然而有些时候我们不需要其中的一些传递性依赖 比如我们不想引入传递性依赖commons-logging,我们可以使用exclusi ...

  2. maven排除依赖包的子依赖_漫画谈一下Maven依赖

    Maven 依赖排除(Exclusions) 因为 Maven 构建的项目具有依赖可传递的特性,当你在 pom.xml添加某个依赖时,可能也会引入不需要的依赖到你的项目中,这将会会可能引起如下问题: ...

  3. maven排除依赖冲突问题

    今天碰到了一个诡异的问题. jedis版本原来用的是2.9.0,想要替换成3.0.1,涉及到父pom,搞了半天,试了各种办法,版本都改不过来. 项目依赖的始终是2.9.0,并且从当前pom到父pom, ...

  4. maven 排除某个类_Maven exclusions(排除依赖)

    org.springframework spring-webmvc 2.5.6 org.springframework spring-beans org.springframework spring- ...

  5. maven可选依赖(Optional Dependencies)和依赖排除(Dependency Exclusions)

    我们知道,maven的依赖关系是有传递性的.如:A-->B,B-->C.但有时候,项目A可能不是必需依赖C,因此需要在项目A中排除对A的依赖.在maven的依赖管理中,有两种方式可以对依赖 ...

  6. 【热门框架】Maven依赖传递,可选依赖以及排除依赖指的是什么?有什么意义?

    Maven依赖传递是指当一个项目依赖另一个项目时,Maven会自动下载并构建这些依赖项,同时还会将这些依赖项所依赖的其他项一并下载并构建.这个过程会一直递归下去,直到所有依赖的项都被下载并构建完成.这 ...

  7. maven的依赖 传递性 和 排除

    传递性: 模块A 依赖 模块1 模块B 依赖 模块A 则模块B 依赖 模块1(依赖会传递给B对应的jar包依赖会传递过来) 根据依赖的传递性只需要在底层模块配置依赖,上层模块也会自动添加依赖 依赖排除 ...

  8. maven依赖传递和排除依赖冲突

    1 依赖的传递 假如 A项目 依赖 a.jar 1.0.1,b.jar 1.0.1,没有直接依赖c.jar 1.0.1,但是b.jar 1.0.1依赖了c.jar 1.0.1,可以说A项目间接依赖了c ...

  9. Maven可选依赖与排除依赖

    可选依赖--指的是对外隐藏当前所依赖的资源(不透明) 可选依赖的作用:是隐藏所使用的依赖,用于控制当前依赖资源能否被别人发现 可选依赖的含义:当前工程所依赖的资源,不被其他项目所调用此依赖 pom文件 ...

最新文章

  1. 我记录网站综合系统 -- 技术原理解析[10:PermissionChecker流程]
  2. python项目2019_2019 年 11 月精选 GitHub 上 几个牛逼 Python 的项目
  3. C#操作Excel(NPOI)
  4. 解决Bazel:Error: LinkageError occurred while loading main class com.google.devtools.build.lib.bazel.
  5. java数组更新_java刷新数组到jList
  6. Winform 显示Gif图片
  7. hive 强转为string_String 源码浅析————终结篇
  8. [转载] python 字符串(string)
  9. java.lang.IllegalArgumentException: parameter must be a descendant of this view
  10. 20162306 2017-2018-1《程序设计与数据结构》 第11周学习总结
  11. oracle高级函数api,Oracle函数-高阶篇
  12. (第六周)团队项目6
  13. [转]enable spice html5 console access in openstack kilo(centos)
  14. 基于python生成手写的笔记
  15. 大数据技术与应用专业 课 程 标 准
  16. 快门光圈感光度口诀_只要三杯水,就能搞懂光圈/快门/感光度的关系!
  17. 「网络流 24 题」火星探险问题。
  18. 记一次某公众号平台前端加密算法的解密
  19. 校招c语言笔试题数组,华为校园招聘考试C语言C笔试题
  20. c#NAudio 录音功能实现

热门文章

  1. HashMap实现原理及源码分析
  2. 靠谱的软件开发公司怎样选择比较靠谱?(三)
  3. 一年赚一百万的思路—别做大多数的傻瓜
  4. 解析 RC4 加密算法(C语言、python)
  5. Python检验输入字符串为合法数字(包括小数、带符号正负数)
  6. proteus设计教程-DS1302时钟芯片驱动程序
  7. 论文阅读:《An Online-Calibrated Time Series Based Model for Day-Ahead Natural Gas Demand Forecasting》
  8. MetInfo米拓后台操作修改汇总(转)
  9. gradle proxy配置
  10. node安装报错及解决方法