15Maven - 依赖冲突的解决

简介: 15Maven - 依赖冲突的解决

依赖冲突的产生

如果添加两个依赖,如下图:

会发现这两个jar包同时都依赖了Spring-beans

希望spring-beans-4.2.4加入工程,发现spring-beans-3.0.5也加入到了工程,这就造成了依赖冲突了。

依赖调节原则

mave 自动按照下边的原则调解:

第一声明优先原则

在pom文件定义依赖,先声明的为准

测试:

如果将上边的struts-spring-plugins和sping-context顺序颠倒,系统将导入spring-beans-4.2.4。

分析:

由于spring-context 在前边以spring-context依赖的spring-beans-4.2.4为准,所以最终spring-beans-4.2.4添加到了工程中。

路径近者优先原则

例如:A依赖spring-beans-4.2.4,A依赖B依赖spring-beans-3.0.5,则spring-beans-4.2.4优先被依赖在A中,因为spring-beans-4.2.4相对于spring-beans-3.0.5被A依赖的路径最近。

测试:

在本工程的pom中加入spring-beans-4.2.4的依赖,根据路径有限原则,系统将导入spring-beans-4.2.4:

排除依赖

上边的问题可以通过排除依赖方法辅助调解,如下:

比如在依赖struts2-spring-plugin的设置中添加了排除依赖,排除spring-beans,下边的配置表示:依赖struts2-spring-plugin,但排除struts2-spring-plugin所依赖的spring-beans。

锁定版本(企业开发中常用方法)

版本锁定后不考虑声明的顺序或依赖的路径,如下:

注意:在工程中锁定依赖的版本并不代表在工程中添加了依赖,如果工程中需要添加锁定版本的依赖则需要单独添加< dependencies></ dependencies>标签,如下:

目录
相关文章
|
1月前
|
Java Maven 容器
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
java依赖冲突解决问题之Maven在编译打包过程中对依赖的jar包如何解决
|
4天前
|
Java Maven
Maven 引入外部依赖
如果我们需要引入第三方库文件到项目,该怎么操作呢?
17 5
|
1月前
|
安全 Java Maven
优化Maven镜像配置:使用阿里云加速依赖下载
更新Maven镜像配置至关重要,尤其使用阿里云仓库时。在`settings.xml`中加入特定镜像配置可显著提升依赖下载速度。示例配置指定了阿里云镜像ID、替代表态仓库、安全的URL、默认布局及启用版本管理。需定位至用户目录下的`.m2/`文件夹编辑`settings.xml`,添加镜像信息后保存测试。若下载仍慢,考虑网络状况或备选镜像。多镜像设置时需注意避免冲突。
158 3
|
1月前
|
Java 测试技术 Maven
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
单元测试问题之在Maven项目中引入JUnit 5和Mockito的依赖如何解决
103 1
|
1月前
|
Java Maven
intellij idea如何查看项目maven依赖关系图
这篇文章介绍了如何在IntelliJ IDEA中查看项目的Maven依赖关系图,包括使用Maven工具栏和相关操作来展示和查看依赖细节。
|
2月前
|
Java Maven
idea安装并使用maven依赖分析插件:Maven Helper
idea安装并使用maven依赖分析插件:Maven Helper
1193 7
|
1月前
|
Java Maven 开发者
"揭秘IDEA的神奇助手:Maven Helper插件,让你轻松驾驭复杂依赖,告别冲突噩梦!"
【8月更文挑战第20天】Maven Helper是一款提升Java开发者工作效率的IDEA插件,它能直观展示项目依赖关系并协助管理。主要功能包括依赖树视图、冲突检测与解决及依赖排除。安装简便,重启IDEA后即用。借助其“Dependencies”面板,开发者可以清晰了解依赖详情,快速定位并解决冲突问题,有效优化项目结构,提升开发效率。
63 0
|
1月前
|
前端开发 Java 测试技术
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
单元测试问题之在Spring MVC项目中添加JUnit的Maven依赖,如何操作
|
1月前
|
Java Maven Windows
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
Maven 引用jar包冲突 Intellij 查找排除JAR包的依赖关系(Maven Helper)
42 0
|
2月前
|
Java Maven
Maven 引入外部依赖
在Maven项目中引入外部库如ldapjdk.jar,需创建`src/lib`并放jar,接着在`pom.xml`的`&lt;dependencies&gt;`添加系统依赖