Maven包管理和依赖冲突解决

2020-05-06  本文已影响0人  _刘小c

首先,可能需要先了解一下JVM的工作原理

JVM的工作非常简单:

执行一个类的字节码,假如在这个过程中,碰到了新的类,那么加载它!

而我们执行 java命令时,使用了-classpath 或 -cp

意思就是指定了类路径,那么JVM就从这些地方找到需要的类

类的全限定类名(⽬录层级)唯⼀确定了⼀个类

jar包是什么:jar包就是把许多类放在⼀起打的压缩包

早期的包管理

Apache Ant

缺点

Maven ——划时代的包管理

Maven包构成:groupId + artifactId + version

而maven的版本号也是严格的按照语义化版本来管理的

Maven包冲突机制

在开发中,无法避免的会遇到依赖不同版本的同名包的情况

在maven的传递性依赖管理中,是不允许同名不同版本的jar包的

一般在compile时遇到如下问题,那么基本就是包冲突问题了

maven在处理这些问题的时候,采用的原则是:最近的胜出,即采用离依赖root越近的

但是有时候maven的这个处理方式并不能满足你的个性化需求,那么我们有几种方法强制指定依赖的版本包

上一篇 下一篇

猜你喜欢

热点阅读