¿Existe una forma sencilla de eliminar las dependencias no utilizadas de un maven pom.xml?
Tengo un proyecto Maven grande con muchos módulos y muchos pom.xml
archivos. 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?
El complemento de dependencia de Maven ayudará, especialmente con el dependency:analyze
objetivo:
dependency:analyze
analiza 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 .
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 system
para el análisis de dependencias no utilizadas).
Pero tenga cuidado al usar esto:
¡Como algunas bibliotecas utilizadas en runtime
se consideran no utilizadas!
Para más detalles consulte este enlace
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>
¿ 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