簡體   English   中英

有沒有一種簡單的方法可以從 maven pom.xml 中刪除未使用的依賴項?

[英]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 PluginDependency 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM