idea查找jar包版本冲突并解决
参考: 参考:
使用idea查看有冲突的maven项目的pom文件,右键Diagrams->Show Dependencies,显示依赖如下 显示红线表示这个guava包存在多个版本冲突 经过分析发现swagger引入的是com.google.guava:guava:20.0 sharding-jdbc引入的是com.google.guava:guava:18.0 运行时报错,大概意思是方法不存在,并且加载的包是guava-18.0.jar 日志级别改成debug,可以看到java.lang.NoSuchMethodError 解决方案
1、移除依赖:用于排除某项依赖的依赖jar包
把低版本的jar依赖排除掉
<dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-boot-starter</artifactId> <!-- 引入依赖的但排除一下guava依赖 --> <exclusions> <exclusion> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> </exclusion> </exclusions> </dependency>
2、版本锁定:一般用在继承项目的父项目的pom文件中
<dependencyManagement> <dependencies> <!-- 指定guava版本为20.0 --> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>20.0</version> </dependency> </dependencies> </dependencyManagement>