猿问

有没有一种简单的方法可以从maven pom.xml中删除未使用的依赖项?

我有一个带有许多模块和pom.xmls的大型Maven项目。并且该项目已进行了很大的更改,以至于我确定pom必须在其中包含一些不必要的依赖项。有谁知道是否有可以运行的命令来删除pom中任何毫无意义的依赖项?



四季花海
浏览 4646回答 3
3回答

繁星coding

在Maven的依赖插件会有所帮助,尤其是dependency:analyze目标:dependency:analyze分析该项目的依赖关系,并确定使用和声明的依赖项;使用和未声明的;未使用和声明。这可能有助于做一些清理工作的另一件事情是依赖趋同报告从Maven项目信息报告插件。

精慕HU

正如其他人所说,您可以使用dependency:analyze目标来查找使用和声明了哪些依赖项,使用了未声明的依赖项或未使用和声明了哪些依赖项。您可能还会发现dependency:analyze-dep-mgt对于在dependencyManagement部分中查找不匹配项很有用。您可以简单地从POM中删除不需要的直接依赖项,但是如果它们是由第三方jar引入的,则可以<exclusions>在依赖项中使用标记来排除第三方jar(有关详细信息和一些讨论,请参阅标题为Dependency Exclusions)。 。这是一个从Spring依赖项中排除commons-logging的示例:<dependency>&nbsp; <groupId>org.springframework</groupId>&nbsp; <artifactId>spring</artifactId>&nbsp; <version>2.5.5</version>&nbsp; <exclusions>&nbsp; &nbsp; <exclusion>&nbsp; &nbsp; &nbsp; <groupId>commons-logging</groupId>&nbsp; &nbsp; &nbsp; <artifactId>commons-logging</artifactId>&nbsp; &nbsp; </exclusion>&nbsp; </exclusions>&nbsp;</dependency>

万千封印

您可以使用 dependency:analyze -DignoreNonCompile这将打印列表used undeclared和unused declared依赖关系(而忽略runtime/ provided/ test/ system范围未使用的依赖性分析。)*但是 在使用此库时要小心,一些在使用的库runtime被视为未使用!
随时随地看视频慕课网APP
我要回答