[英]Maven: Include dependencies from pom.xml located in one of the dependencies
[英]Is there a simple way to remove unused dependencies from a maven pom.xml?
我有一个包含许多模块和许多pom.xml
文件的大型 Maven 项目。 该项目已更改,我怀疑 pom 包含一些不必要的依赖项。 是否有一个命令可以从 pom 中删除任何未使用的依赖项?
Maven Dependency Plugin会有所帮助,尤其是dependency:analyze
目标:
dependency:analyze
分析此项目的依赖关系,并确定哪些是:已使用和已声明; 已使用和未申报; 未使用并已声明。
另一件可能有助于清理的事情是来自Maven Project Info Reports Plugin的Dependency Convergence 报告。
您可以使用dependency:analyze -DignoreNonCompile
这将打印使用的未声明和未使用的声明依赖项列表(同时忽略runtime
/ provided
/ test
/ system
范围以进行未使用的依赖项分析。)
runtime
使用的一些库被认为是未使用的 **正如其他人所说,您可以使用dependency:analyze目标来查找已使用和已声明、已使用和未声明或未使用并已声明的依赖项。 您可能还会发现dependency:analyze-dep-mgt在您的 dependencyManagement 部分中查找不匹配时很有用。
你可以简单地从你的POM中删除不需要直接依赖关系,但如果他们是由第三方罐子介绍,您可以使用<exclusions>
标签的依赖排除第三方jar文件(请参见标题依赖排除对细节的部分,一些讨论)。 这是一个从 Spring 依赖项中排除 commons-logging 的示例:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.5</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
你看过Maven Dependency Plugin吗? 这不会为您删除内容,但具有允许您自己进行分析的工具。 我特别想
mvn dependency:tree
我遇到了类似的问题,并决定编写一个脚本来为我删除依赖项。 使用它,我很容易地消除了一半以上的依赖项。
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
如果您使用的是 Eclipse,请右键单击 Maven Dependencies 中的 jar:选择 Maven -> Exclude Maven Artifact...
您可以使用 DepClean https://github.com/castor-software/depclean/
DepClean 是一种工具,用于自动删除包含在 Java 依赖项树中但实际上并未在项目代码中使用的依赖项。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.