文档章节

Maven 重复依赖的两大原则

k
 kikicoco
发布于 2016/08/08 13:23
字数 269
阅读 28
收藏 0

当一个项目中出现重复的依赖包时,maven 2.0.9之后的版本会用如下的规则来决定使用哪一个版本的包:

最短路径原则

比如有如下两个依赖关系:

A -> B -> C -> D(V1)
F -> G -> D(V2)

这个时候项目中就出现了两个版本的D,这时maven会采用最短路径原则,选择V2版本的D,因为V1版本的D是由A包间接依赖的,整个依赖路径长度为3,而V2版本的D是由F包间接依赖的,整个依赖路径长度为2。

声明优先原则

假设有如下两个依赖关系:

A -> B -> D(V1)
F -> G -> D(V2)

这个时候因为两个版本的D的依赖路径都是一样长,最短路径原则就失效了。这个时候Maven的解决方案是:按照依赖包在pom.xml中声明的先后顺序,优先选择先声明的包

本文转载自:http://qifuguang.me/2015/12/11/Maven对重复依赖的解决方案/

共有 人打赏支持
k
粉丝 14
博文 13
码字总数 4092
作品 0
杭州
maven基本要点

环境变量MAVEN_OPTS -Xms128m -Xmx512m 依赖范围 依赖范围就是用来控制依赖与这三种class-path(编译classpath、测试classpath、运行class-path)的关系。 compile:编译依赖范围() 如果没有...

xixicat
2015/12/27
150
0
(二)maven详解之坐标与依赖

看着简单而又复杂的pom.xml文件,看似熟悉,当自己编写的时候觉得简单,但是看人家项目的时候又觉得复杂的很,现在我们一起来分析这个pom文件。 Maven的坐标为各种构件引入了秩序,任何一个构...

飓风2000
2015/02/13
0
0
Maven详解(四)依赖中原六合网站开发的配置

依赖的配置中原六合网站开发haozbbs.com Q1446595067 根元素project下的dependencies可以包含一个或者多个dependency元素,以声明一个或者多个项目依赖。每个依赖可以包含的元素有: 依赖范围...

nbzbvzv
07/16
0
0
Spring的两大特征和事务管理

@作者博客 Spring 两大特性 IOC控制反转 IOC是什么? IOC是一种思想,是一个重要的面向对象编程的体现之一 传统的应用程序是由我们在类的内部主动创建依赖对象,从而导致类与类之间高耦合,测试也...

1314Stone
2017/11/26
0
0
Maven依赖进阶

使用maven的程序员都会遇到一个问题,那就是maven依赖冲突的问题,这会导致ClassNotFound或者MethodNotFound这样的异常。其实只要明白maven依赖的根本性的原则就不怕这样的问题了。 一、mav...

Lubby
2016/05/12
1K
8

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windbg学习记录

我开始熟练使用windbg是从帮助手册开始的,也就是.hh命令。 就像学习windows开发从msdn开始一样,微软的产品虽然不开源,但是文档做的是相当的好。然而那些开源的东西呢?开源的竞争力其实就...

simpower
15分钟前
0
0
学习scala的网站汇总

https://www.codacy.com/blog/how-to-learn-scala/

Littlebox
17分钟前
0
0
配置本地的cloud9开发环境

前言 说到在线IDE开发环境,cloud9是不能绕过的,cloud9支持很多语言,默认支持的就有Node.js,Python,Ruby,PHP,Go,更逆天的是,他还支持数据库,包括MySQL,MongoDB,Redis,SQLite。但...

Kefy
21分钟前
1
0
springcloud应用程序上下文层次结构

如果您从SpringApplication或SpringApplicationBuilder构建应用程序上下文,则将Bootstrap上下文添加为该上下文的父级。这是一个Spring的功能,即子上下文从其父进程继承属性源和配置文件,因...

itcloud
26分钟前
0
0
新程序员最爱的免费资源

简评:国外美女程序员推荐了她自己用过的一些免费资源,对新手比较友好的那种。 原作者 Ali Spittel,是个美女程序员,以下这些资源都是她自己试过的。以下「我」代表 Ali Spittel。 学 HTML...

极光推送
29分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部