MVN -Abhängigkeitsbaum

MVN -Abhängigkeitsbaum

„Abhängigkeiten sind externe Codes und Snippets, die in Ihr Projekt importiert werden, um zusätzliche Funktionen bereitzustellen. Zum Beispiel könnte eine Abhängigkeit ein weiteres Archiv oder eine andere Datei in Java -Projekten sein. Andere Teile des Projekts verweisen dann auf die abhängige Abhängigkeit.

Ein klares Bild des Abhängigkeitsbaums für Ihr Projekt kann von Vorteil sein. Es ermöglicht schnelles Finden von Konflikten zwischen installierten Paketen und der effizienten Lösung.

In diesem Tutorial lernen wir, wie man den Abhängigkeitsbaum eines Maven -Projekts sieht.”

Lass uns anfangen.

Maven -Abhängigkeits -Plugin

Das Apache Maven -Dienstprogramm verfügt über ein Tool, mit dem Sie Ihre Abhängigkeiten verwalten können. Mit dem Maven -Abhängigkeits -Plugin können Sie einen einfachen Befehl in Ihrem Projekt ausführen und alle Abhängigkeiten visualisieren.

Die Plugin -Ressource ist unten angezeigt:

https: // maven.Apache.org/plugins/maven-abhängig-plugin/nutzung.html

Der beste Weg, um Ihren Projektabhängigkeitsbaum mit diesem Plugin zu visualisieren, besteht darin, den folgenden Befehl auszuführen:

MVN -Abhängigkeit: Baum

Der vorherige Befehl sucht alle Abhängigkeiten in Ihrem Projekt und gibt eine Baumstruktur zurück.

Lassen Sie uns veranschaulichen, wie wir dies erreichen können.

Sie können jedes Maven -Projekt mit allen erforderlichen Abhängigkeiten verwenden, um dies zu tun.

Sobald Sie den obigen Befehl ausgeführt haben, sollten Sie die folgende Beispielausgabe sehen:

[Info] --- Maven-Abhängigkeits-Plugin: 2.8: Baum (Standard-Cli) @ jedis ---
[Info] Redis.Kunden: Jedis: Jar: 4.3.0-Snapshot
[Info] +- org.SLF4J: SLF4J-API: JAR: 1.7.32: kompilieren
[Info] +- org.Apache.Commons: Commons-pool2: Jar: 2.11.1: kompilieren
[Info] +- org.JSON: JSON: JAR: 20211205: Compile
[Info] +- com.Google.Code.GSON: GSON: JAR: 2.8.9: kompilieren
[Info] +- jungit: jungit: jar: 4.13.2: Test
[Info] | \- org.Hamcrest: Hamcrest-Core: Jar: 1.3: Test
[Info] +- org.SLF4J: SLF4J-Simple: Jar: 1.7.32: Test
[Info] +- com.Kohlschutter.junixsocket: junixsocket-core: pom: 2.4.0: Test
[Info] | +- com.Kohlschutter.junixsocket: junixsocket-nativ-common: jar: 2.4.0: Test
[Info] | \- com.Kohlschutter.junixsocket: junixsocket-common: jar: 2.4.0: Test
[Info] \- org.Mockito: Mockito-inline: Jar: 3.12.4: Test
[Info] \- org.Mockito: Mockito-Core: Jar: 3.12.4: Test
[Info] +- Netz.bytebuddy: byte-buddy: jar: 1.11.13: Test
[Info] +- Netz.Bytebuddy: Byte-Buddy-Agent: Jar: 1.11.13: Test
[Info] \- org.Objenesis: Objenesis: Jar: 3.2: Test

Wie Sie aus der obigen Ausgabe sehen können, gibt Maven alle Abhängigkeiten unseres Projekts in einem Listenformat zurück.

Es ist gut zu bedenken, dass in diesem Befehl Sie Maven und Java JDK auf Ihrem System installieren müssen.

Abhängigkeiten filtern

Wenn Sie an einem großen Projekt arbeiten, ist es möglicherweise schwierig, alle Abhängigkeiten mit dem obigen Befehl anzusehen und zu verwalten.

Zum Glück können Sie mit dem Maven -Abhängigkeitsbaum -Plugin die gezeigten Abhängigkeiten filtern. Dies bedeutet, dass Sie jede Abhängigkeit, die Sie wünschen.

Um nur eine bestimmte Abhängigkeit einzuschließen, verwenden wir die Option Dincludes, wie in der folgenden Syntax gezeigt:

MVN -Abhängigkeit: Baum -Dincludes [GroupID]: [ArtefactId]: [Typ]: [Version]

Denken Sie daran, dass jedes der Segmente im Parameter -Dincludes optional ist.

Um beispielsweise zu zeigen, wie eine bestimmte Abhängigkeit im Projekt verwendet wird, können wir den folgenden Befehl ausführen:

MVN -Abhängigkeit: Baum -Dincludes = junixsocket: junixsocket -core

Der vorherige Code sollte zurückgeben:

[DIE INFO]
[DIE INFO] ------------------------< redis.clients:jedis >-------------------------
[Info] Jedis 4 erstellen 4.3.0-Snapshot
[Info] ---------------------------- [JAR]---------------------------------
[DIE INFO]
[Info] --- Maven-Abhängigkeits-Plugin: 2.8: Baum (Standard-Cli) @ jedis ---

Um eine Abhängigkeit vom Baum auszuschließen, können wir den Parameter -Dincludes verwenden, wie in der folgenden Syntax gezeigt.:

MVN -Abhängigkeit: Baum -Dincludes = [GroupID]: [ArtefactId]: [Typ]: [Version]

Zum Beispiel:

MVN -Abhängigkeit: Baum -Dexcludes = junixsocket: junixsocket -core

Dies sollte die Ausgabe wie unten gezeigt zurückgeben:

Maven speichern Abhängigkeit zur Datei

Sie können den Abhängigkeitsbaum auch mit dem Parameter -doutputfile in einer Datei speichern. Ein Beispiel ist unten gezeigt:

MVN -Abhängigkeit: Baum -doutputfile = "Dep.Baum"

Im vorherigen Befehl weisen wir Maven an, einen Abhängigkeitsbaum zu erstellen und sie in eine Datei namens DEP zu speichern.Baum.

Die resultierende Dateiausgabe ist unten angegeben:

+- Org.SLF4J: SLF4J-API: JAR: 1.7.32: kompilieren
+- Org.Apache.Commons: Commons-pool2: Jar: 2.11.1: kompilieren
+- Org.JSON: JSON: JAR: 20211205: Compile
+- com.Google.Code.GSON: GSON: JAR: 2.8.9: kompilieren
+- jungit: jungit: jar: 4.13.2: Test
| \- org.Hamcrest: Hamcrest-Core: Jar: 1.3: Test
+- Org.SLF4J: SLF4J-Simple: Jar: 1.7.32: Test
+- com.Kohlschutter.junixsocket: junixsocket-core: pom: 2.4.0: Test
| +- com.Kohlschutter.junixsocket: junixsocket-nativ-common: jar: 2.4.0: Test
| \- com.Kohlschutter.junixsocket: junixsocket-common: jar: 2.4.0: Test
\- org.Mockito: Mockito-inline: Jar: 3.12.4: Test
\- org.Mockito: Mockito-Core: Jar: 3.12.4: Test
+- Netz.bytebuddy: byte-buddy: jar: 1.11.13: Test
+- Netz.Bytebuddy: Byte-Buddy-Agent: Jar: 1.11.13: Test
\- org.Objenesis: Objenesis: Jar: 3.2: Test

Maven wird nur die Projektabhängigkeiten in der Datei auf hierarchische Weise einbeziehen.

Abschluss

In diesem Beitrag wurde behandelt, wie der Maven -Abhängigkeitsbaum mit dem Maven -Abhängigkeits -Plugin angezeigt wird.