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>
经验分享 程序员 微信小程序 职场和发展