„Závislosti jsou externí kódy a úryvky importované do vašeho projektu, aby poskytovaly další funkce. Závislostí může být například jiný archiv nebo soubor v Java Projects. Další části projektu pak odkazují na závislost, která se má spustit.
Mít jasný obrázek stromu závislostí pro váš projekt může být prospěšné. Umožňuje rychle najít konflikty mezi nainstalovanými balíčky a efektivně je řešit.
V tomto tutoriálu se naučíme, jak zobrazit strom závislostí projektu Maven.“
Začněme.
Závislostní plugin Maven
Nástroj Apache Maven je dodáván s nástrojem, který vám umožní spravovat vaše závislosti. Zásuvný modul Maven Dependency Plugin vám umožní spustit jednoduchý příkaz ve vašem projektu a vizualizovat všechny jeho závislosti.
Zdroj pluginu je zobrazen níže:
https://maven.apache.org/plugins/maven-dependency-plugin/usage.html
Nejlepší způsob, jak vizualizovat strom závislostí projektu pomocí tohoto pluginu, je spustit následující příkaz:
mvn závislost : stromPředchozí příkaz vyhledá všechny závislosti ve vašem projektu a vrátí stromovou strukturu.
Pojďme si ukázat, jak toho můžeme dosáhnout.
K tomu můžete použít jakýkoli projekt Maven s libovolnými požadovanými závislostmi.
Po spuštění výše uvedeného příkazu byste měli vidět následující příklad výstupu:
[ INFO ] --- maven - závislost - zapojit : 2.8 : strom ( výchozí - cli ) @ jedis ---[ INFO ] redis. klientů : jedi : sklenice : 4.3.0 - MOMENTKA
[ INFO ] +- org. slf4j : slf4j - api : sklenice : 1.7.32 : kompilovat
[ INFO ] +- org. apache . commons : commons - bazén2 : sklenice : 2.11.1 : kompilovat
[ INFO ] +- org. json : json : sklenice : 20211205 : kompilovat
[ INFO ] +- s. Google . kód . gson : gson : sklenice : 2.8.9 : kompilovat
[ INFO ] +- junit : junit : sklenice : 4.13.2 : test
[ INFO ] | \ - org. hamcrest : hamcrest - jádro : sklenice : 1.3 : test
[ INFO ] +- org. slf4j : slf4j - jednoduchý : sklenice : 1.7.32 : test
[ INFO ] +- s. Kohlschutter . zásuvka jux : zásuvka jux - jádro : vidět : 2.4.0 : test
[ INFO ] | +- s. Kohlschutter . zásuvka jux : zásuvka jux - rodák - společný : sklenice : 2.4.0 : test
[ INFO ] | \ - s. Kohlschutter . zásuvka jux : zásuvka jux - společný : sklenice : 2.4.0 : test
[ INFO ] \ - org. mockito : mockito - v souladu : sklenice : 3.12.4 : test
[ INFO ] \ - org. mockito : mockito - jádro : sklenice : 3.12.4 : test
[ INFO ] +- síť. bytebuddy : byte - kamarád : sklenice : 1.11.13 : test
[ INFO ] +- síť. bytebuddy : byte - kamarád - činidlo : sklenice : 1.11.13 : test
[ INFO ] \ - org. souhlasil : souhlasil : sklenice : 3.2 : test
Jak můžete vidět z výše uvedeného výstupu, Maven vrací všechny závislosti našeho projektu ve formátu seznamu.
Je dobré mít na paměti, že tento příkaz vyžaduje, abyste měli na svém systému nainstalovaný Maven a Java JDK.
Filtrování závislostí
Pokud pracujete na velkém projektu, může být pro vás obtížné zobrazit a spravovat všechny závislosti pomocí výše uvedeného příkazu.
Naštěstí vám plugin stromu závislostí Maven umožňuje filtrovat zobrazené závislosti. To znamená, že můžete zahrnout nebo vyloučit jakoukoli závislost, kterou chcete.
Chcete-li zahrnout pouze konkrétní závislost, použijeme možnost Dincludes, jak je znázorněno v následující syntaxi:
mvn závislost : strom - Zahrnuje [ groupId ] : [ ArtifactId ] : [ typ ] : [ verze ]Mějte na paměti, že každý ze segmentů v parametru -Dincludes je volitelný.
Abychom například ukázali, jak se v projektu používá konkrétní závislost, můžeme spustit následující příkaz:
mvn závislost : strom - Zahrnuje = zásuvka jux : zásuvka jux - jádroPředchozí kód by měl vrátit:
[ INFO ][ INFO ] ------------------------< redis. klientů : jedi >--------------------------
[ INFO ] Budování Jedisů 4.3.0 - MOMENTKA
[ INFO ] -------------------------------- [ sklenice ] ----------------------------------
[ INFO ]
[ INFO ] --- maven - závislost - zapojit : 2.8 : strom ( výchozí - cli ) @ jedis ---
Chcete-li vyloučit závislost ze stromu, můžeme použít parametr -Dincludes, jak je znázorněno v syntaxi níže.:
mvn závislost : strom - Zahrnuje = [ groupId ] : [ ArtifactId ] : [ typ ] : [ verze ]Například:
mvn závislost : strom - Nezahrnuje = zásuvka jux : zásuvka jux - jádroTo by mělo vrátit výstup, jak je znázorněno níže:
Maven Uložit závislost do souboru
Strom závislostí můžete také uložit do souboru pomocí parametru -DoutputFile. Příklad je uveden níže:
mvn závislost : strom - DoutputFile = 'dep.tree'V předchozím příkazu dáváme Mavenovi pokyn, aby vytvořil strom závislostí a uložil jej do souboru s názvem dep.tree.
Výsledný výstup souboru je uveden níže:
+- org. slf4j : slf4j - api : sklenice : 1.7.32 : kompilovat+- org. apache . commons : commons - bazén2 : sklenice : 2.11.1 : kompilovat
+- org. json : json : sklenice : 20211205 : kompilovat
+- s. Google . kód . gson : gson : sklenice : 2.8.9 : kompilovat
+- junit : junit : sklenice : 4.13.2 : test
| \ - org. hamcrest : hamcrest - jádro : sklenice : 1.3 : test
+- org. slf4j : slf4j - jednoduchý : sklenice : 1.7.32 : test
+- s. Kohlschutter . zásuvka jux : zásuvka jux - jádro : vidět : 2.4.0 : test
| +- s. Kohlschutter . zásuvka jux : zásuvka jux - rodák - společný : sklenice : 2.4.0 : test
| \ - s. Kohlschutter . zásuvka jux : zásuvka jux - společný : sklenice : 2.4.0 : test
\ - org. mockito : mockito - v souladu : sklenice : 3.12.4 : test
\ - org. mockito : mockito - jádro : sklenice : 3.12.4 : test
+- síť. bytebuddy : byte - kamarád : sklenice : 1.11.13 : test
+- síť. bytebuddy : byte - kamarád - činidlo : sklenice : 1.11.13 : test
\ - org. souhlasil : souhlasil : sklenice : 3.2 : test
Maven zahrne do souboru pouze závislosti projektu hierarchickým způsobem.
Závěr
Tento příspěvek se zabýval tím, jak zobrazit strom závislostí Maven pomocí pluginu Maven.