java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > IDEA查看Maven依赖树

IDEA查看Maven依赖树与解决Jar包冲突的方法

作者:Knight_AL

这篇文章主要介绍了如何使用IDEA查看Maven依赖树,找出冲突的jar包,并提供了解决冲突的方法,包括使用排除(exclusion)和在dependencyManagement中强制指定版本,需要的朋友可以参考下

模拟依赖冲突

  <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>6.0.9</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>5.3.23</version>
        </dependency>
    </dependencies>

一、查看依赖树

方法 1:IDEA 自带 Maven 工具

打开右侧 Maven 工具栏(快捷键 Alt+Shift+M / View > Tool Windows > Maven)。

找到你的项目,展开 Dependencies 节点。

鼠标悬停在依赖上,可以看到它的 来源(哪个依赖引入的)

方法 2:使用命令行

在项目根目录执行:

mvn dependency:tree

这会打印依赖树,例如:

[INFO] org.example:dependency-test:jar:1.0-SNAPSHOT
[INFO] +- org.springframework:spring-webmvc:jar:6.0.9:compile
[INFO] |  +- org.springframework:spring-beans:jar:6.0.9:compile
[INFO] |  +- org.springframework:spring-context:jar:6.0.9:compile
[INFO] |  +- org.springframework:spring-core:jar:6.0.9:compile
[INFO] |  |  \- org.springframework:spring-jcl:jar:6.0.9:compile
[INFO] |  +- org.springframework:spring-expression:jar:6.0.9:compile
[INFO] |  \- org.springframework:spring-web:jar:6.0.9:compile
[INFO] |     \- io.micrometer:micrometer-observation:jar:1.10.7:compile
[INFO] |        \- io.micrometer:micrometer-commons:jar:1.10.7:compile
[INFO] \- org.springframework:spring-aop:jar:5.3.23:compile

org.springframework:spring-beans:jar:6.0.9:compile用的6.0.0的版本

如果树太大,可以加过滤:

mvn dependency:tree -Dincludes=org.springframework

方法 3:IDEA 插件(推荐)

安装 Maven Helper 插件(在 IDEA 插件市场搜索)。

打开 pom.xml,底部会出现 Dependency Analyzer 标签页。

在这个面板里,可以:

二、找出冲突 jar 包

例如:

org.springframework:spring-beans:6.0.9
org.springframework:spring-beans:5.3.23 (omitted for conflict)

三、解决冲突(exclusion)

在 pom.xml 中找到冲突依赖的 上游依赖,添加 exclusion

例如,如果 spring-boot-starter 引入了错误的 commons-logging,可以这样写:

       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>6.0.9</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring-beans</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

或者如果只是版本不一致,可以在 dependencyManagement 里强制指定版本:

<dependencyManagement>
    <dependencies>
        <dependency>
             <groupId>org.springframework</groupId>
             <artifactId>spring-beans</artifactId>
            <version>5.3.23</version>
        </dependency>
    </dependencies>
</dependencyManagement>

四、总结

到此这篇关于IDEA查看Maven依赖树与解决Jar包冲突的方法的文章就介绍到这了,更多相关IDEA查看Maven依赖树内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文