¿Existe una forma sencilla de eliminar las dependencias no utilizadas de un maven pom.xml?

Resuelto asked hace 15 años • 0 respuestas

Tengo un proyecto Maven grande con muchos módulos y muchos pom.xmlarchivos. El proyecto ha cambiado y sospecho que los pom contienen algunas dependencias innecesarias. ¿Existe algún comando que elimine las dependencias no utilizadas de un pom?

 avatar Oct 05 '09 05:10
Aceptado

El complemento de dependencia de Maven ayudará, especialmente con el dependency:analyzeobjetivo:

dependency:analyzeanaliza las dependencias de este proyecto y determina cuáles son: utilizadas y declaradas; usado y no declarado; sin usar y declarado.

Otra cosa que podría ayudar a realizar una limpieza es el informe de convergencia de dependencias del complemento de informes de información del proyecto Maven .

Pascal Thivent avatar Oct 04 '2009 22:10 Pascal Thivent

Puedes usar dependency:analyze -DignoreNonCompile.

Esto imprimirá una lista de dependencias "usadas no declaradas" y "no utilizadas declaradas" (mientras se ignoran runtime// provided/ testámbitos systempara el análisis de dependencias no utilizadas).

Pero tenga cuidado al usar esto:

¡Como algunas bibliotecas utilizadas en runtimese consideran no utilizadas!

Para más detalles consulte este enlace

Saikat avatar Mar 23 '2017 05:03 Saikat

Como han dicho otros, puede usar el objetivo dependency:analyze para encontrar qué dependencias se usan y declaran, se usan y no se declaran, o no se usan y se declaran. También puede resultarle útil dependency:analyze-dep-mgt para buscar discrepancias en su sección dependencyManagement.

Simplemente puede eliminar las dependencias directas no deseadas de su POM, pero si son introducidas por archivos jar de terceros, puede usar las <exclusions>etiquetas en una dependencia para excluir los archivos jar de terceros (consulte la sección titulada Exclusiones de dependencias para obtener detalles y alguna discusión). . A continuación se muestra un ejemplo que excluye el registro de bienes comunes de la dependencia de Spring:

<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>
Rich Seller avatar Oct 05 '2009 07:10 Rich Seller

¿ Has mirado el complemento de dependencia de Maven ? Eso no eliminará cosas por usted, pero tiene herramientas que le permitirán realizar el análisis usted mismo. Estoy pensando particularmente en

mvn dependency:tree
Brian Agnew avatar Oct 04 '2009 22:10 Brian Agnew