八.解决依赖冲突
来源:互联网 发布:哪一句话影响你 你知乎 编辑:程序博客网 时间:2024/06/07 06:42
一.解决冲突
1.查看依赖报告
2.解决传递性依赖
3.强制一个版本
二.修改gradle默认解决策略
1.gradle默认会使用高版本的依赖
2.取消默认策略,如果有版本冲突,直接让其构建失败
configurations.all{ resolutionStrategy{ failOnVersionConflict() }}
3.排除传递性依赖(默认排除最低版本)
//排除哪个jar的依赖compile('org.spring-core:3.6.3.Final'){ //指定要排除的依赖的group和module=name,不指定版本,默认排除最低版本 exclude group:'org.slf4j',module:'slf4j-api' //transitive=false//排除所有传递性依赖,比较少用}
4.修改gradle的默认使用最高版本策略(强制指定默认使用某个版本)
configurations.all{ resolutionStrategy{ force 'org.slf4j:slf4j-api:1.7.24' }}
三.例
1.在项目的bulid.gradle文件中添加依赖:
dependencies { //junit的依赖 testCompile group: 'junit', name: 'junit', version: '4.11' //bibernate的依赖 compile 'org.hibernate:hibernate-core:3.6.3.Final' //logback的依赖 compile 'ch.qos.logback:logback-classic:1.2.1'}
2.在gradle的选项卡的:web-Source Sets-main-Dependencies的依赖中可以看到:
org.hibernate:hibernate-core:3.6.3.Final 依赖了 org.slf4j:slf4j-api:1.7.22ch.qos.logback:logback-classic:1.2.1 也依赖了 org.slf4j:slf4j-api:1.7.22
其实两个jar依赖的版本并不一定完全一样,但是gradle默认取最高版本的依赖,进行了最高版本的依赖统一
可以执行Tasks-help-dependences查看以来详情
3.取消gradle的默认高版本统一依赖,在bulid.gradle中添加:
//取消gradle默认统一使用高版本依赖的策略(gradle默认依赖冲突解决策略)configurations.all{ resolutionStrategy{ failOnVersionConflict() }}
执行build,会看到报错信息:
FAILURE: Build failed with an exception.* What went wrong:Could not resolve all dependencies for configuration ':runtime'.> A conflict was found between the following modules: - org.slf4j:slf4j-api:1.6.1 - org.slf4j:slf4j-api:1.7.22 - org.slf4j:slf4j-api:1.5.8
4.排除传递性依赖,在build.gradle中添加:
//排除传递性依赖//添加依赖dependencies { //junit的依赖 testCompile group: 'junit', name: 'junit', version: '4.11' //hbernate的依赖 compile ('org.hibernate:hibernate-core:3.6.3.Final'){ //排斥hibernate对slf4j的依赖 exclude group:'org.slf4j',module:'slf4j-api' } //logback的依赖 compile ('ch.qos.logback:logback-classic:1.2.1')}
执行bulid,编译成功
5.强制gradle默认统一使用某个版本依赖的策略(修改gradle默认依赖冲突解决策略)(可以是maven仓库的任何版本)
//强制gradle默认统一使用某个版本依赖的策略(修改gradle默认依赖冲突解决策略)configurations.all{ resolutionStrategy{ failOnVersionConflict() force 'org.slf4j:slf4j-api:1.7.22' }}
强制不使用最新版,使用指定版
阅读全文
0 0
- 八.解决依赖冲突
- maven解决依赖冲突
- maven依赖冲突解决
- Gradle解决依赖冲突
- mvn依赖解决冲突
- 解决Maven依赖冲突
- 解决依赖冲突
- maven 传递依赖-冲突解决
- 解决pom文件依赖冲突
- Maven传递依赖冲突解决
- gradle 解决依赖冲突问题
- 解决maven传递依赖中的版本冲突
- Maven解决类包依赖冲突
- 解决maven【传递依赖】中的版本冲突
- 解决maven传递依赖中的版本冲突
- 解决maven传递依赖中的版本冲突
- 如何快速的解决Maven依赖冲突
- Maven解决类包依赖冲突
- 一、highchart 文件下载与使用
- Java输入输出(IO)和流的基本概念
- 强化练习4:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数), 凡报到3的人退出圈子,问最后留下的是原来第几号。
- PS
- Linux系统find命令用法总结
- 八.解决依赖冲突
- C语言链表的来源分析
- 懂点网站交互(3):广告牌设计101法则
- 如何搭建SignalR服务器和客户端(c#)
- BZOJ 1010: [HNOI2008]玩具装箱toy【斜率优化】
- 005_字面量和变量
- POJ 3414 Pots 我没有用广搜做
- 二十三种设计模式之迭代器模式
- C语言数据结构之栈篇