Trova dipendenze Maven inutilizzate

1. Panoramica

Quando si utilizza Maven per gestire le dipendenze del progetto, possiamo perdere traccia di quali dipendenze vengono utilizzate nella nostra applicazione.

In questo breve tutorial, tratteremo come utilizzare il plugin per le dipendenze Maven , un plugin che ci aiuta a trovare le dipendenze inutilizzate nel nostro progetto.

2. Configurazione del progetto

Cominciamo aggiungendo un paio di dipendenze, slf4j-api (quella che useremo) e common-collections (quella che non useremo):

  commons-collections commons-collections 3.2.2   org.slf4j slf4j-api 1.7.25   

Possiamo accedere al plug-in di dipendenza Maven senza specificarlo nel nostro pom. In ogni caso, possiamo utilizzare la definizione pom.xml per specificare la versione e anche alcune proprietà se necessario:

   maven-dependency-plugin 3.1.2   

3. Esempio di codice

Ora che abbiamo impostato il nostro progetto, scriviamo una riga di codice in cui utilizziamo una delle dipendenze che abbiamo definito prima:

public Logger getLogger() { return LoggerFactory.getLogger(UnusedDependenciesExample.class); }

Il LoggerFactory dalla libreria Slf4J viene restituito in un metodo, ma non viene utilizzata la libreria common-collections, rendendola un candidato per la rimozione.

4. Trova le dipendenze inutilizzate

Utilizzando il plug-in delle dipendenze Maven, possiamo trovare le dipendenze che non sono in uso nel nostro progetto. Per questo, invochiamo l'obiettivo di analisi del plugin:

$ mvn dependency:analyze [INFO] --- maven-dependency-plugin:3.1.1:analyze (default-cli) @ maven-unused-dependencies --- [WARNING] Unused declared dependencies found: [WARNING] commons-collections:commons-collections:jar:3.2.2:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.225 s [INFO] Finished at: 2020-04-01T16:10:25-04:00 [INFO] ------------------------------------------------------------------------

Per ogni dipendenza che non è in uso nel nostro progetto, Maven emette un avviso nel rapporto di analisi.

5. Specificare le dipendenze come usate

A seconda della natura del progetto, a volte potrebbe essere necessario caricare le classi in fase di esecuzione, come ad esempio in un progetto orientato ai plugin.

Poiché le dipendenze non vengono utilizzate in fase di compilazione, il plugin maven-dependency emette un avviso indicando che una dipendenza non viene utilizzata, quando in realtà lo è. Per questo, possiamo imporre e istruire il plug-in sull'utilizzo di una libreria.

Lo facciamo elencando le dipendenze all'interno della proprietà usedDependencies :

 org.apache.maven.plugins maven-dependency-plugin   commons-collections:commons-collections   

Eseguendo nuovamente l'obiettivo di analisi , vediamo che la dipendenza inutilizzata non viene più considerata nel report.

6. Conclusione

In questo breve tutorial, abbiamo imparato come trovare le dipendenze Maven inutilizzate. È una buona pratica controllare regolarmente le dipendenze inutilizzate poiché migliora la manutenibilità e riduce la dimensione della libreria del nostro progetto.

Come sempre, il codice sorgente completo con tutti gli esempi è disponibile su GitHub.