maven仲裁机制

玩过springboot的人都知道  springboot项目中你一般看不到大段的spring相关包 而是像

spring-boot-start一个jar包就包含spring相关的包 包含了具体版本号 ,这其实就是一个版本仲裁的结果,不依赖程序自定义的相关包,这样就不会造成JAR冲突

当前maven大行其道,说到第一类Jar包冲突问题的产生原因,就不得不提maven的依赖机制了。传递性依赖是Maven2.0引入的新特性,让我们只需关注直接依赖的Jar包,对于间接依赖的Jar包,Maven会通过解析从远程仓库获取的依赖包的pom文件来隐式地将其引入,这为我们开发带来了极大的便利,但与此同时,也带来了常见的问题——版本冲突,即同一个Jar包出现了多个不同的版本,针对该问题Maven也有一套仲裁机制来决定最终选用哪个版本,但Maven的选择往往不一定是我们所期望的,这也是产生Jar包冲突最常见的原因之一。先来看下Maven的仲裁机制:

优先按照依赖管理元素中指定的版本声明进行仲裁,此时下面的两个原则都无效了

若无版本声明,则按照“短路径优先”的原则(Maven2.0)进行仲裁,即选择依赖树中路径最短的版本

若路径长度一致,则按照“第一声明优先”的原则进行仲裁,即选择POM中最先声明的版本

这里的问题就产生了  按照版本仲裁的原则  比如我需要引入一个jar包 我可能会引入一个较新版本的jar包  但原来三方包里已经有这个jar低版本包 且只支持低版本 高版本还不兼容 这时  按照仲裁原则就会有问题  三方包可能出现运行时异常等问题  所以起步依赖的引入 从根本解决了这个问题!

maven仲裁机制_maven仲裁机制相关推荐

  1. linux amba机制,AMBA仲裁器仲裁机制

    AHB中没有规定仲裁器的仲裁算法,它可以根据不同的应用场合,采取不同的仲裁机制.比如采用固定优先级的仲裁(Fixed priority),循环式优先级仲裁(Round Robin),或是随机性的仲裁( ...

  2. php artisan实现机制,laravel 原理机制及几个重要功能

    Laravel作为在国内国外都颇为流行的PHP框架,风格优雅,其拥有自己的一些特点,且也发布长期支持版(LTS). 一. 请求周期 Laravel 采用了单一入口模式,应用的所有请求入口都是 publ ...

  3. linux模块化机制,Linux模块化机制和module_init

    > 引子:模块化机制优点 模块化机制(module)是Linux系统的一大创新,是Linux驱动开发和运行的基础(当然,module并不仅仅是支撑驱动).其优点在于: 1.在系统运行动态加载模块 ...

  4. 计算机英语仲裁合词,仲裁 arbitration 法律英语常用词

    submit for arbitration 提交仲裁 arbitration agreement 仲裁协议 umpire 首席仲裁员 award 仲裁裁决 arbitrator 仲裁员 arbitr ...

  5. 【干货】APP产品处理加载机制和刷新机制的交互方法解析

    外行人对交互设计的第一印象是什么?画线框图的?做草稿的? 的确,大家所看到交互设计师的日常工作成果都是一些线框图,从表面上理解的确是这样. 其实,交互设计师做的远远不止这些.往深一步想,信息架构.界面 ...

  6. android log丢失(三)动态切换logd机制和kernel机制

    之前我们分析了如何修改版本使log机制变成kernel的log机制.这篇博客我们继续修改可以动态切换,这样方便平时log丢失时调试. 我们先来看liblog库的编译mk文件,这个文件中主要修改了对使用 ...

  7. namenode和datanode工作机制_Hadoop的namenode的管理机制,工作机制和datanode的工作原理...

    HDFS前言: 1) 设计思想 分而治之:将大文件.大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析: 2)在大数据系统中作用: 为各类分布式运算框架(如:mapr ...

  8. session机制和cookie机制

    一.cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案.同时我们也看到,由于才服务器端保持状态的方 ...

  9. php中Session的生成机制、回收机制和存储机制探究

    转载:http://www.jb51.net/article/53938.htm 这篇文章主要介绍了php中Session的生成机制.回收机制和存储机制探究,可以帮助大家对Session有一个全面的了 ...

最新文章

  1. wince5使用access数据库_关于wince系统支持什么数据库的阿里云论坛用户知识和技术交流...
  2. IDEA打开vue项目,每次打开的都是上一次的vue项目,即同一个vue项目,解决方法
  3. 盘点2020年10个最难忘的数据泄露事件
  4. Mozilla官方:Firefox 3.5.1问题并非安全漏洞 仅是堆溢出Crash
  5. [Java]将二叉树的左右子树交换 非递归实现
  6. tensorflow 特征预处理总结
  7. 【HDOJ7059】Counting Stars(线段树,区间加,乘,标记)
  8. Android给力模拟器,秒杀原生模拟器到渣
  9. PHP单元测试PHPUnit
  10. Matlab信号处理,小波降噪
  11. 大众点评字体_大众点评字体反爬
  12. OSPF 之 6类LSA详解
  13. 【习题5】用Python完成新建文档写古诗+复制
  14. appStore 应用审核-加急审核
  15. ABOUT DOTA
  16. PDF编辑器首选工具Acrobat Pro DC
  17. 暴君专栏和谐按钮_质量工具:卑微的仆人还是暴君?
  18. 装在笔记本里的私有云环境:网络存储篇(中)
  19. 查看java 多少位_如何查看jdk的版本是32位还是64位
  20. Hibernate--QBC举例+详解(一)

热门文章

  1. python 英语词频统计软件_Python实现统计英文文章词频的方法分析
  2. java中数组的定义
  3. html在线摄像头,在HTML里加载摄像头的方法
  4. 小程序如何调用php程序,微信小程序调用PHP后台接口 解析纯html文本
  5. oracle undo段的作用,Oracle数据库中Undo数据段的作用及类型
  6. 简单html5作品,最新HTML5简单入门系列精选
  7. 计算机系统维护是学什么,《计算机系统维护》教学大纲.doc
  8. 用计算机计算电力系统故障,用计算机计算电力系统故障的方法.ppt
  9. String、StringBuilder、StringBuffer的区别
  10. 悖论对计算机科学影响,数学和计算机科学的核心逻辑悖论