Ho un grande progetto Maven con molti moduli e molti pom.xml
file. Il progetto è cambiato e sospetto che i pom contengano alcune dipendenze non necessarie. Esiste un comando che rimuove eventuali dipendenze non utilizzate da un pom?
Ho un grande progetto Maven con molti moduli e molti pom.xml
file. Il progetto è cambiato e sospetto che i pom contengano alcune dipendenze non necessarie. Esiste un comando che rimuove eventuali dipendenze non utilizzate da un pom?
Risposte:
Il plug-in di dipendenza Maven aiuterà, in particolare l' dependency:analyze
obiettivo:
dependency:analyze
analizza le dipendenze di questo progetto e determina quali sono: utilizzate e dichiarate; usato e non dichiarato; inutilizzato e dichiarato.
Un'altra cosa che potrebbe aiutare a fare un po 'di pulizia è il rapporto sulla convergenza delle dipendenze dal plug-in Maven Project Info Reports .
ignoreNonCompile
possibile impostare l' opzione su true.
Puoi usare dependency:analyze -DignoreNonCompile
Verrà stampato un elenco di dipendenze dichiarate usate non dichiarate e non utilizzate (ignorando runtime
/ provided
/ test
/ system
ambiti per l'analisi delle dipendenze non utilizzate).
Fai attenzione quando lo usi, alcune librerie utilizzate in runtime
sono considerate inutilizzate!
Come altri hanno già detto, è possibile utilizzare la dipendenza: analizzare l' obiettivo per trovare quali dipendenze vengono utilizzate e dichiarate, utilizzate e non dichiarate o non utilizzate e dichiarate. È inoltre possibile trovare dipendenza: analizza-dep-mgt utile per cercare disallineamenti nella sezione Gestione dipendenze.
Puoi semplicemente rimuovere dipendenze dirette indesiderate dal tuo POM, ma se sono introdotte da vasetti di terze parti, puoi utilizzare i <exclusions>
tag in una dipendenza per escludere i vasetti di terze parti (vedi la sezione intitolata Esclusioni di dipendenze per dettagli e alcune discussioni) . Ecco un esempio che esclude la registrazione comune dalla dipendenza 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>
Hai visto il plug-in di dipendenza Maven ? Questo non rimuoverà le cose per te, ma ha strumenti per permetterti di fare tu stesso l'analisi. Sto pensando in particolare
mvn dependency:tree
Ho avuto un simile tipo di problema e ho deciso di scrivere una sceneggiatura che mi rimuovesse le dipendenze. Usando questo, ho eliminato abbastanza facilmente metà delle dipendenze.
http://samulisiivonen.blogspot.com/2012/01/cleanin-up-maven-dependencies.html
mvn dependency:analyze
. Cerca solo di rimuovere ogni dipendenza e controlla se mvn install
funziona.