idea中解决maven包冲突的问题


在我们使用maven进行jar包管理的时候,因为jar包传递依赖,可能会导致相同jar包的不同版本被依赖,由于包管理的依赖优先级会导致最终实际引入的jar包不是你最终需要的版本,由此可能出现类找不到的情况。针对这种jar包冲突的问题,可以依赖idea来很好的解决。

这边展示两种解决问题的方法,一种利用idea自带的show dependencies,另一种是maven helper插件。

一 show dependencies

打开pom.xml文件,如下图操作:

选择show dependencies,则会展示项目的jar包依赖图:

看图中出现的红线,则表明出现了jar包冲突(依赖太多确实观察不太爽)。找到有冲突的jar包,按Ctrl + F搜索,回车查看结果。例如:

图中虚红线表示该依赖其实是指向了另外的一个版本;实红线,表示该依赖其实有多个不同的版本。此时,找到你想排出的版本,右键操作如下:

此时pom.xml文件会自动更新如下:

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>guava</artifactId>
                    <groupId>com.google.guava</groupId>
                </exclusion>
            </exclusions>
        </dependency>

二 maven helper

maven helper是一款idea插件,首先安装:

安装好之后,打开pom.xml文件,可以在左下角看到如下标签:

单击这个标签,出现如下图:

选中右键就可以 Exclude 啦,就可以把不需要的版本的Exclude掉。

三 总结

从使用上来看,还是使用maven helper更方便快捷,利用idea的show dependencies图太大,不好观察操作。很可惜的就是如果用gradle来管理依赖的话,我并没有找到类似的插件。


文章作者: shiv
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 shiv !
评论
  目录