如何找出是不是在 Maven 应用程序中使用了依赖项中的任何类?

Posted

技术标签:

【中文标题】如何找出是不是在 Maven 应用程序中使用了依赖项中的任何类?【英文标题】:How to find out if any class from dependency is being used in the maven application?如何找出是否在 Maven 应用程序中使用了依赖项中的任何类? 【发布时间】:2021-07-26 23:35:04 【问题描述】:

我有一个庞大的 maven 应用程序,在 pom.xml 文件中有近 100 个 maven 依赖项。

一个启动器依赖项是下载 log4j.jar,这根本不需要。那么,是否有一个容易找到的方法来确保没有使用特定 jar 中的类,以便我们可以直接从启动器依赖中排除它,如下所示。

         <dependency>
            <groupId>com.example.group</groupId>
            <artifactId>example-artifact</artifactId>
            <version>1.11.5</version>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

基本上我想排除我根本不使用但只是作为传递依赖项出现的 jar。

【问题讨论】:

尝试使用mvn dependency:tree 嗨@crizzis,我明白上面给出了结构,但我更担心直接依赖关系带来的无用罐子 mvn 依赖:tree 帮助了,谢谢。 【参考方案1】:

更具体地说,这将准确地显示您的要求:

https://maven.apache.org/plugins/maven-dependency-plugin/examples/resolving-conflicts-using-the-dependency-tree.html

【讨论】:

Maven 使用最接近的第一分辨率解析依赖关系

以上是关于如何找出是不是在 Maven 应用程序中使用了依赖项中的任何类?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Maven 中找出隐藏的依赖项和插件版本?

如何为maven项目添加依赖? (如何从外部 jar 文件中找出 GroupID / ArtifactID)[重复]

如何理解 Maven 依赖树

IntelliJ IDEA 中的 java Maven 项目,如何找到不需要的依赖项?

阻止下载 Gradle 和 Maven 依赖项

Maven--依赖管理