Drzewo zależności MVN

Drzewo Zaleznosci Mvn

„Zależności to zewnętrzne kody i fragmenty zaimportowane do projektu w celu zapewnienia dodatkowej funkcjonalności. Na przykład zależnością może być inne archiwum lub plik w projektach Java. Inne części projektu następnie odwołują się do zależności do uruchomienia.

Posiadanie wyraźnego obrazu drzewa zależności dla twojego projektu może być korzystne. Pozwala szybko znaleźć konflikty między zainstalowanymi pakietami i skutecznie je rozwiązać.







W tym samouczku dowiemy się, jak wyświetlić drzewo zależności projektu Maven.”



Zacznijmy.



Wtyczka zależności Maven

Narzędzie Apache Maven zawiera narzędzie, które pozwala zarządzać zależnościami. Wtyczka Maven Dependency umożliwi Ci uruchomienie prostego polecenia w Twoim projekcie i wizualizację wszystkich jego zależności.





Zasób wtyczki jest pokazany poniżej:

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



Najlepszym sposobem wizualizacji drzewa zależności projektu za pomocą tej wtyczki jest uruchomienie następującego polecenia:

zależność mvn : drzewo

Poprzednie polecenie zlokalizuje wszystkie zależności w twoim projekcie i zwróci strukturę podobną do drzewa.

Zilustrujmy, jak możemy to osiągnąć.

Aby to zrobić, możesz użyć dowolnego projektu Maven z dowolnymi wymaganymi zależnościami.

Po uruchomieniu powyższego polecenia powinieneś zobaczyć następujące przykładowe dane wyjściowe:

[ INFORMACJE ] --- maven - zależność - podłącz : 2,8 : drzewo ( domyślna - cli ) @jedis ---
[ INFORMACJE ] redys. klienci : Jedi : słoik : 4.3.0 - MIGAWKA
[ INFORMACJE ] +- org. slf4j : slf4j - api : słoik : 1.7.32 : skompilować
[ INFORMACJE ] +- org. Apache . lud : lud - basen2 : słoik : 2.11.1 : skompilować
[ INFORMACJE ] +- org. json : json : słoik : 20211205 : skompilować
[ INFORMACJE ] +- z. Google . kod . gson : gson : słoik : 2.8.9 : skompilować
[ INFORMACJE ] +- junit : junit : słoik : 4.13.2 : test
[ INFORMACJE ] | \ - org. hamcrest : hamcrest - rdzeń : słoik : 1,3 : test
[ INFORMACJE ] +- org. slf4j : slf4j - prosty : słoik : 1.7.32 : test
[ INFORMACJE ] +- z. kohlschutter . gniazdo Junix : gniazdo Junix - rdzeń : Widzieć : 2.4.0 : test
[ INFORMACJE ] | +- z. kohlschutter . gniazdo Junix : gniazdo Junix - rodzinny - wspólny : słoik : 2.4.0 : test
[ INFORMACJE ] | \ - z. kohlschutter . gniazdo Junix : gniazdo Junix - wspólny : słoik : 2.4.0 : test
[ INFORMACJE ] \ - org. mockito : mockito - wbudowany : słoik : 3.12.4 : test
[ INFORMACJE ] \ - org. mockito : mockito - rdzeń : słoik : 3.12.4 : test
[ INFORMACJE ] +- internet. bajtkumpel : bajt - kumpel : słoik : 1.11.13 : test
[ INFORMACJE ] +- internet. bajtkumpel : bajt - kumpel - agent : słoik : 1.11.13 : test
[ INFORMACJE ] \ - org. Zgoda : Zgoda : słoik : 3.2 : test

Jak widać z powyższych danych wyjściowych, Maven zwraca wszystkie zależności naszego projektu w formie listy.

Warto pamiętać, że to polecenie wymaga zainstalowania w systemie Maven i Java JDK.

Zależności filtrowania

Jeśli pracujesz nad dużym projektem, możesz mieć trudności z przeglądaniem i zarządzaniem wszystkimi zależnościami za pomocą powyższego polecenia.

Na szczęście wtyczka drzewa zależności Mavena pozwala filtrować pokazane zależności. Oznacza to, że możesz uwzględnić lub wykluczyć dowolną zależność, którą chcesz.

Aby uwzględnić tylko określoną zależność, używamy opcji Dincludes, jak pokazano w następującej składni:

zależność mvn : drzewo - Nie obejmuje [ Identyfikator grupy ] : [ identyfikator artefaktu ] : [ rodzaj ] : [ wersja ]

Pamiętaj, że każdy z segmentów w parametrze -Dincludes jest opcjonalny.

Przykładowo, aby pokazać, w jaki sposób dana zależność jest wykorzystana w projekcie, możemy uruchomić następującą komendę:

zależność mvn : drzewo - Nie obejmuje = gniazdo Junix : gniazdo Junix - rdzeń

Poprzedni kod powinien zwrócić:

[ INFORMACJE ]
[ INFORMACJE ] ------------------------< redys. klienci : Jedi >-------------------------
[ INFORMACJE ] Budowanie Jedi 4.3.0 - MIGAWKA
[ INFORMACJE ] -------------------------------- [ słoik ] ----------------------------------
[ INFORMACJE ]
[ INFORMACJE ] --- maven - zależność - podłącz : 2,8 : drzewo ( domyślna - cli ) @jedis ---

Aby wykluczyć zależność z drzewa, możemy użyć parametru -Dincludes, jak pokazano w poniższej składni.:

zależność mvn : drzewo - Nie obejmuje = [ Identyfikator grupy ] : [ identyfikator artefaktu ] : [ rodzaj ] : [ wersja ]

Na przykład:

zależność mvn : drzewo - Wyklucza = gniazdo Junix : gniazdo Junix - rdzeń

Powinno to zwrócić dane wyjściowe, jak pokazano poniżej:

Maven zapisuje zależność do pliku

Drzewo zależności można również zapisać do pliku za pomocą parametru -DoutputFile. Przykład jest pokazany poniżej:

zależność mvn : drzewo - Plik wyjściowy = 'drzewo.dep'

W poprzednim poleceniu instruujemy Mavena, aby utworzył drzewo zależności i zapisał je do pliku o nazwie dep.tree.

Wynikowy plik wyjściowy znajduje się poniżej:

+- org. slf4j : slf4j - api : słoik : 1.7.32 : skompilować
+- org. Apache . lud : lud - basen2 : słoik : 2.11.1 : skompilować
+- org. json : json : słoik : 20211205 : skompilować
+- z. Google . kod . gson : gson : słoik : 2.8.9 : skompilować
+- junit : junit : słoik : 4.13.2 : test
| \ - org. hamcrest : hamcrest - rdzeń : słoik : 1,3 : test
+- org. slf4j : slf4j - prosty : słoik : 1.7.32 : test
+- z. kohlschutter . gniazdo Junix : gniazdo Junix - rdzeń : Widzieć : 2.4.0 : test
| +- z. kohlschutter . gniazdo Junix : gniazdo Junix - rodzinny - wspólny : słoik : 2.4.0 : test
| \ - z. kohlschutter . gniazdo Junix : gniazdo Junix - wspólny : słoik : 2.4.0 : test
\ - org. mockito : mockito - wbudowany : słoik : 3.12.4 : test
\ - org. mockito : mockito - rdzeń : słoik : 3.12.4 : test
+- internet. bajtkumpel : bajt - kumpel : słoik : 1.11.13 : test
+- internet. bajtkumpel : bajt - kumpel - agent : słoik : 1.11.13 : test
\ - org. Zgoda : Zgoda : słoik : 3.2 : test

Maven uwzględni w pliku zależności projektu tylko w sposób hierarchiczny.

Wniosek

W tym poście omówiono, jak wyświetlić drzewo zależności Maven za pomocą wtyczki zależności Maven.