MVN-Abhängigkeitsbaum

Mvn Abhangigkeitsbaum



„Abhängigkeiten sind externe Codes und Snippets, die in Ihr Projekt importiert werden, um zusätzliche Funktionen bereitzustellen. Eine Abhängigkeit könnte beispielsweise ein anderes Archiv oder eine andere Datei in Java-Projekten sein. Andere Teile des Projekts verweisen dann auf die auszuführende Abhängigkeit.

Ein klares Bild des Abhängigkeitsbaums für Ihr Projekt zu haben, kann von Vorteil sein. Es ermöglicht das schnelle Auffinden von Konflikten zwischen installierten Paketen und deren effiziente Lösung.







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



Lass uns anfangen.



Maven-Abhängigkeits-Plugin

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





Die Plugin-Ressource wird unten angezeigt:

https://maven.apache.org/plugins/maven-dependency-plugin/usage.html



Der beste Weg, um Ihren Projektabhängigkeitsbaum mit diesem Plugin zu visualisieren, ist die Ausführung des folgenden Befehls:

mvn-Abhängigkeit : Baum

Der vorherige Befehl findet alle Abhängigkeiten in Ihrem Projekt und gibt eine baumartige Struktur zurück.

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

Sie können dazu jedes Maven-Projekt mit allen erforderlichen Abhängigkeiten verwenden.

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

[ DIE INFO ] --- Maven - Abhängigkeit - Plugin : 2.8 : Baum ( Ursprünglich - Kl ) @Jedis ---
[ DIE INFO ] redis. Kunden : Jedi : Krug : 4.3.0 - SCHNAPPSCHUSS
[ DIE INFO ] +- org. slf4j : slf4j - API : Krug : 1.7.32 : kompilieren
[ DIE INFO ] +- org. Apache . Commons : Commons - Pool2 : Krug : 2.11.1 : kompilieren
[ DIE INFO ] +- org. json : json : Krug : 20211205 : kompilieren
[ DIE INFO ] +- mit. Google . Code . gson : gson : Krug : 2.8.9 : kompilieren
[ DIE INFO ] +- junit : junit : Krug : 4.13.2 : Prüfung
[ DIE INFO ] | \ - org. Oberschenkel : Oberschenkel - Ader : Krug : 1.3 : Prüfung
[ DIE INFO ] +- org. slf4j : slf4j - einfach : Krug : 1.7.32 : Prüfung
[ DIE INFO ] +- mit. Kohlschutter . Junix-Socket : Junix-Socket - Ader : sehen : 2.4.0 : Prüfung
[ DIE INFO ] | +- mit. Kohlschutter . Junix-Socket : Junix-Socket - einheimisch - gemeinsames : Krug : 2.4.0 : Prüfung
[ DIE INFO ] | \ - mit. Kohlschutter . Junix-Socket : Junix-Socket - gemeinsames : Krug : 2.4.0 : Prüfung
[ DIE INFO ] \ - org. Mockito : Mockito - in der Reihe : Krug : 3.12.4 : Prüfung
[ DIE INFO ] \ - org. Mockito : Mockito - Ader : Krug : 3.12.4 : Prüfung
[ DIE INFO ] +- Netz. Bytefreund : Byte - Kumpel : Krug : 1.11.13 : Prüfung
[ DIE INFO ] +- Netz. Bytefreund : Byte - Kumpel - Agent : Krug : 1.11.13 : Prüfung
[ DIE INFO ] \ - org. einverstanden : einverstanden : Krug : 3.2 : Prüfung

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

Denken Sie daran, dass Sie für diesen Befehl Maven und Java JDK auf Ihrem System installiert haben müssen.

Abhängigkeiten filtern

Wenn Sie an einem großen Projekt arbeiten, fällt es Ihnen möglicherweise schwer, alle Abhängigkeiten mit dem obigen Befehl anzuzeigen und zu verwalten.

Glücklicherweise können Sie mit dem Maven-Plugin für den Abhängigkeitsbaum nach den angezeigten Abhängigkeiten filtern. Das bedeutet, dass Sie jede gewünschte Abhängigkeit einschließen oder ausschließen können.

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

mvn-Abhängigkeit : Baum - Beinhaltet [ Gruppen-ID ] : [ artifactId ] : [ Typ ] : [ Ausführung ]

Beachten Sie, 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 - Beinhaltet = Junix-Socket : Junix-Socket - Ader

Der vorherige Code sollte Folgendes zurückgeben:

[ DIE INFO ]
[ DIE INFO ] ------------------------< redis. Kunden : Jedi >-------------------------
[ DIE INFO ] Bauen von Jedis 4.3.0 - SCHNAPPSCHUSS
[ DIE INFO ] --------------------------------- [ Krug ] ---------------------------------
[ DIE INFO ]
[ DIE INFO ] --- Maven - Abhängigkeit - Plugin : 2.8 : Baum ( Ursprünglich - Kl ) @Jedis ---

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

mvn-Abhängigkeit : Baum - Beinhaltet = [ Gruppen-ID ] : [ artifactId ] : [ Typ ] : [ Ausführung ]

Zum Beispiel:

mvn-Abhängigkeit : Baum - Schließt aus = Junix-Socket : Junix-Socket - Ader

Dies sollte die Ausgabe wie unten gezeigt zurückgeben:

Maven Abhängigkeit in Datei speichern

Sie können die Abhängigkeitsstruktur auch mit dem Parameter -DoutputFile in einer Datei speichern. Ein Beispiel ist unten gezeigt:

mvn-Abhängigkeit : Baum - Ausgabedatei = 'dep.baum'

Im vorherigen Befehl weisen wir Maven an, einen Abhängigkeitsbaum zu erstellen und ihn in einer Datei namens dep.tree zu speichern.

Die resultierende Dateiausgabe wird unten bereitgestellt:

+- org. slf4j : slf4j - API : Krug : 1.7.32 : kompilieren
+- org. Apache . Commons : Commons - Pool2 : Krug : 2.11.1 : kompilieren
+- org. json : json : Krug : 20211205 : kompilieren
+- mit. Google . Code . gson : gson : Krug : 2.8.9 : kompilieren
+- junit : junit : Krug : 4.13.2 : Prüfung
| \ - org. Oberschenkel : Oberschenkel - Ader : Krug : 1.3 : Prüfung
+- org. slf4j : slf4j - einfach : Krug : 1.7.32 : Prüfung
+- mit. Kohlschutter . Junix-Socket : Junix-Socket - Ader : sehen : 2.4.0 : Prüfung
| +- mit. Kohlschutter . Junix-Socket : Junix-Socket - einheimisch - gemeinsames : Krug : 2.4.0 : Prüfung
| \ - mit. Kohlschutter . Junix-Socket : Junix-Socket - gemeinsames : Krug : 2.4.0 : Prüfung
\ - org. Mockito : Mockito - in der Reihe : Krug : 3.12.4 : Prüfung
\ - org. Mockito : Mockito - Ader : Krug : 3.12.4 : Prüfung
+- Netz. Bytefreund : Byte - Kumpel : Krug : 1.11.13 : Prüfung
+- Netz. Bytefreund : Byte - Kumpel - Agent : Krug : 1.11.13 : Prüfung
\ - org. einverstanden : einverstanden : Krug : 3.2 : Prüfung

Maven fügt die Projektabhängigkeiten nur hierarchisch in die Datei ein.

Fazit

In diesem Beitrag wurde beschrieben, wie Sie den Maven-Abhängigkeitsbaum mit dem Maven-Abhängigkeits-Plugin anzeigen.