MVN дърво на зависимостите

Mvn D Rvo Na Zavisimostite



„Зависимостите са външни кодове и фрагменти, импортирани във вашия проект, за да осигурят допълнителна функционалност. Например, зависимост може да бъде друг архив или файл в Java Projects. След това други части на проекта препращат към зависимостта, която трябва да се изпълни.

Наличието на ясно изображение на дървото на зависимостите за вашия проект може да бъде от полза. Позволява бързо намиране на конфликти между инсталираните пакети и тяхното ефективно разрешаване.







В този урок ще научим как да преглеждаме дървото на зависимостите на проект на Maven.“



Да започваме.



Плъгин за зависимости на Maven

Помощната програма Apache Maven идва с инструмент, който ви позволява да управлявате вашите зависимости. Приставката за зависимости на Maven ще ви позволи да изпълните проста команда във вашия проект и да визуализирате всички нейни зависимости.





Ресурсът на приставката е показан по-долу:

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



Най-добрият начин да визуализирате дървото на зависимостта на вашия проект с този плъгин е като изпълните следната команда:

mvn зависимост : дърво

Предишната команда ще намери всички зависимости във вашия проект и ще върне дървовидна структура.

Нека илюстрираме как можем да постигнем това.

Можете да използвате всеки проект на Maven с всички необходими зависимости, за да направите това.

След като изпълните командата по-горе, трябва да видите следния примерен резултат:

[ ИНФО ] --- maven - зависимост - плъгин : 2.8 : дърво ( по подразбиране - cli ) @ jedis ---
[ ИНФО ] redis. клиенти : джедаи : буркан : 4.3.0 - МОМЕНТАЛНА СНИМКА
[ ИНФО ] +- орг. slf4j : slf4j - api : буркан : 1.7.32 : компилирам
[ ИНФО ] +- орг. апаш . общ : общ - басейн2 : буркан : 2.11.1 : компилирам
[ ИНФО ] +- орг. json : json : буркан : 20211205 : компилирам
[ ИНФО ] +- с. google . код . gson : gson : буркан : 2.8.9 : компилирам
[ ИНФО ] +- юнит : юнит : буркан : 4.13.2 : тест
[ ИНФО ] | \ - орг. hamcrest : hamcrest - сърцевина : буркан : 1.3 : тест
[ ИНФО ] +- орг. slf4j : slf4j - просто : буркан : 1.7.32 : тест
[ ИНФО ] +- с. kohlschutter . junix сокет : junix сокет - сърцевина : виж : 2.4.0 : тест
[ ИНФО ] | +- с. kohlschutter . junix сокет : junix сокет - местен - често срещани : буркан : 2.4.0 : тест
[ ИНФО ] | \ - с. kohlschutter . junix сокет : junix сокет - често срещани : буркан : 2.4.0 : тест
[ ИНФО ] \ - орг. mockito : mockito - в редица : буркан : 3.12.4 : тест
[ ИНФО ] \ - орг. mockito : mockito - сърцевина : буркан : 3.12.4 : тест
[ ИНФО ] +- нето. bytebuddy : байт - приятелю : буркан : 1.11.13 г : тест
[ ИНФО ] +- нето. bytebuddy : байт - приятелю - агент : буркан : 1.11.13 г : тест
[ ИНФО ] \ - орг. съгласен : съгласен : буркан : 3.2 : тест

Както можете да видите от резултата по-горе, Maven връща всички зависимости на нашия проект във формат на списък.

Добре е да имате предвид, че тази команда изисква да имате Maven и Java JDK инсталирани на вашата система.

Филтриране на зависимости

Ако работите върху голям проект, може да ви е трудно да преглеждате и управлявате всички зависимости с помощта на горната команда.

За щастие плъгинът за дърво на зависимости на Maven ви позволява да филтрирате показаните зависимости. Това означава, че можете да включите или изключите всяка зависимост, която желаете.

За да включим само конкретна зависимост, използваме опцията Dincludes, както е показано в следния синтаксис:

mvn зависимост : дърво - Не включва [ groupId ] : [ artefactId ] : [ Тип ] : [ версия ]

Имайте предвид, че всеки от сегментите в параметъра -Dincludes не е задължителен.

Например, за да покажем как се използва конкретна зависимост в проекта, можем да изпълним следната команда:

mvn зависимост : дърво - Не включва = junix сокет : junix сокет - сърцевина

Предишният код трябва да върне:

[ ИНФО ]
[ ИНФО ] ------------------------< redis. клиенти : джедаи >------------------------
[ ИНФО ] Изграждане на джедаи 4.3.0 - МОМЕНТАЛНА СНИМКА
[ ИНФО ] -------------------------------- [ буркан ] ----------------------------------
[ ИНФО ]
[ ИНФО ] --- maven - зависимост - плъгин : 2.8 : дърво ( по подразбиране - cli ) @ jedis ---

За да изключим зависимост от дървото, можем да използваме параметъра -Dincludes, както е показано в синтаксиса по-долу.:

mvn зависимост : дърво - Не включва = [ groupId ] : [ artefactId ] : [ Тип ] : [ версия ]

Например:

mvn зависимост : дърво - Изключва = junix сокет : junix сокет - сърцевина

Това трябва да върне изхода, както е показано по-долу:

Maven Запазване на зависимостта във файл

Можете също да запишете дървото на зависимостите във файл, като използвате параметъра -DoutputFile. По-долу е показан пример:

mvn зависимост : дърво - Изходен файл = 'dep.tree'

В предишната команда инструктираме Maven да създаде дърво на зависимостите и да го запише във файл, наречен dep.tree.

Полученият изходен файл е предоставен по-долу:

+- орг. slf4j : slf4j - api : буркан : 1.7.32 : компилирам
+- орг. апаш . общ : общ - басейн2 : буркан : 2.11.1 : компилирам
+- орг. json : json : буркан : 20211205 : компилирам
+- с. google . код . gson : gson : буркан : 2.8.9 : компилирам
+- юнит : юнит : буркан : 4.13.2 : тест
| \ - орг. hamcrest : hamcrest - сърцевина : буркан : 1.3 : тест
+- орг. slf4j : slf4j - просто : буркан : 1.7.32 : тест
+- с. kohlschutter . junix сокет : junix сокет - сърцевина : виж : 2.4.0 : тест
| +- с. kohlschutter . junix сокет : junix сокет - местен - често срещани : буркан : 2.4.0 : тест
| \ - с. kohlschutter . junix сокет : junix сокет - често срещани : буркан : 2.4.0 : тест
\ - орг. mockito : mockito - в редица : буркан : 3.12.4 : тест
\ - орг. mockito : mockito - сърцевина : буркан : 3.12.4 : тест
+- нето. bytebuddy : байт - приятелю : буркан : 1.11.13 г : тест
+- нето. bytebuddy : байт - приятелю - агент : буркан : 1.11.13 г : тест
\ - орг. съгласен : съгласен : буркан : 3.2 : тест

Maven ще включва само зависимостите на проекта във файла по йерархичен начин.

Заключение

Тази публикация описва как да видите дървото на зависимостите на Maven с помощта на приставката за зависимости на Maven.