Suchen Sie nach nicht verwendeten Maven-Abhängigkeiten

1. Übersicht

Wenn Sie Maven zum Verwalten unserer Projektabhängigkeiten verwenden, verlieren wir möglicherweise den Überblick darüber, welche Abhängigkeiten in unserer Anwendung verwendet werden.

In diesem kurzen Tutorial erfahren Sie, wie Sie das Maven-Abhängigkeits-Plugin verwenden , ein Plugin, mit dem wir nicht verwendete Abhängigkeiten in unserem Projekt finden können.

2. Projekteinrichtung

Beginnen wir mit dem Hinzufügen einiger Abhängigkeiten, slf4j-api (die, die wir verwenden werden) und common-collection (die, die wir nicht verwenden werden):

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

Wir können auf das Maven-Abhängigkeits-Plugin zugreifen, ohne es in unserem POM anzugeben. In jedem Fall können wir die Definition pom.xml verwenden , um die Version und bei Bedarf auch einige Eigenschaften anzugeben:

   maven-dependency-plugin 3.1.2   

3. Codebeispiel

Nachdem wir unser Projekt eingerichtet haben, schreiben wir eine Codezeile, in der wir eine der zuvor definierten Abhängigkeiten verwenden:

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

Die LoggerFactory aus der Slf4J-Bibliothek wird in einer Methode zurückgegeben, die Common-Collections-Bibliothek wird jedoch nicht verwendet, sodass sie zum Entfernen in Frage kommt .

4. Suchen Sie nach nicht verwendeten Abhängigkeiten

Mit dem Maven-Abhängigkeits-Plugin können wir die Abhängigkeiten finden, die in unserem Projekt nicht verwendet werden. Dazu rufen wir das Analyseziel des Plugins auf:

$ 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] ------------------------------------------------------------------------

Für jede Abhängigkeit, die in unserem Projekt nicht verwendet wird, gibt Maven eine Warnung im Analysebericht aus.

5. Geben Sie die verwendeten Abhängigkeiten an

Abhängig von der Art des Projekts müssen wir manchmal Klassen zur Laufzeit laden, wie zum Beispiel in einem Plugin-orientierten Projekt.

Da die Abhängigkeiten zur Kompilierungszeit nicht verwendet werden, gibt das Maven-Dependency-Plugin eine Warnung aus, die besagt, dass eine Abhängigkeit nicht verwendet wird, obwohl dies tatsächlich der Fall ist. Dafür können wir das Plugin erzwingen und anweisen, dass eine Bibliothek verwendet wird.

Dazu listen wir die Abhängigkeiten in der Eigenschaft usedDependencies auf :

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

Wenn Sie das Analyseziel erneut ausführen, wird die nicht verwendete Abhängigkeit im Bericht nicht mehr berücksichtigt.

6. Fazit

In diesem kurzen Tutorial haben wir gelernt, wie Sie nicht verwendete Maven-Abhängigkeiten finden. Es wird empfohlen, regelmäßig nach nicht verwendeten Abhängigkeiten zu suchen, da dies die Wartbarkeit verbessert und die Bibliotheksgröße unseres Projekts verringert.

Wie immer ist der vollständige Quellcode mit allen Beispielen auf GitHub verfügbar.