为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

四季花海 2019-11-05 15:10:36
我有一个带有许多模块和pom.xmls的大型Maven项目。并且该项目已进行了很大的更改,以至于我确定pom必须在其中包含一些不必要的依赖项。有谁知道是否有可以运行的命令来删除pom中任何毫无意义的依赖项?
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

在Maven的依赖插件会有所帮助,尤其是dependency:analyze目标:


dependency:analyze分析该项目的依赖关系,并确定使用和声明的依赖项;使用和未声明的;未使用和声明。


这可能有助于做一些清理工作的另一件事情是依赖趋同报告从Maven项目信息报告插件。


查看完整回答
反对 回复 2019-11-05
?
精慕HU

TA贡献1845条经验 获得超8个赞

正如其他人所说,您可以使用dependency:analyze目标来查找使用和声明了哪些依赖项,使用了未声明的依赖项或未使用和声明了哪些依赖项。您可能还会发现dependency:analyze-dep-mgt对于在dependencyManagement部分中查找不匹配项很有用。


您可以简单地从POM中删除不需要的直接依赖项,但是如果它们是由第三方jar引入的,则可以<exclusions>在依赖项中使用标记来排除第三方jar(有关详细信息和一些讨论,请参阅标题为Dependency Exclusions)。 。这是一个从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>


查看完整回答
反对 回复 2019-11-05
?
万千封印

TA贡献1891条经验 获得超3个赞

您可以使用 dependency:analyze -DignoreNonCompile


这将打印列表used undeclared和unused declared依赖关系(而忽略runtime/ provided/ test/ system范围未使用的依赖性分析。)


*但是 在使用此库时要小心,一些在使用的库runtime被视为未使用!


查看完整回答
反对 回复 2019-11-05
  • 3 回答
  • 0 关注
  • 4645 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信