如何找出是不是在 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项目添加依赖? (如何从外部 jar 文件中找出 GroupID / ArtifactID)[重复]