Дерево зависимостей MVN

Derevo Zavisimostej Mvn

«Зависимости — это внешние коды и фрагменты, импортированные в ваш проект для обеспечения дополнительной функциональности. Например, зависимостью может быть другой архив или файл в Java Projects. Затем другие части проекта ссылаются на зависимость для запуска.

Четкое представление дерева зависимостей для вашего проекта может быть полезным. Это позволяет быстро находить конфликты между установленными пакетами и эффективно их разрешать.



В этом уроке мы узнаем, как просматривать дерево зависимостей проекта Maven».



Давайте начнем.



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

Утилита Apache Maven поставляется с инструментом, позволяющим управлять зависимостями. Плагин Maven Dependency позволит вам запустить простую команду в вашем проекте и визуализировать все ее зависимости.

Ресурс плагина показан ниже:

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



Лучший способ визуализировать дерево зависимостей вашего проекта с помощью этого плагина — выполнить следующую команду:

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

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

Давайте проиллюстрируем, как мы можем этого добиться.

Для этого вы можете использовать любой проект Maven с любыми необходимыми зависимостями.

После запуска приведенной выше команды вы должны увидеть следующий пример вывода:

[ ИНФОРМАЦИЯ ] --- знаток - зависимость - плагин : 2,8 : дерево ( дефолт - Кли ) @ Джедаи ---
[ ИНФОРМАЦИЯ ] редис клиенты : джедай : банка : 4.3.0 - СНИМОК
[ ИНФОРМАЦИЯ ] +- орг. slf4j : slf4j - API : банка : 1.7.32 : компилировать
[ ИНФОРМАЦИЯ ] +- орг. апач . общины : общины - бассейн2 : банка : 2.11.1 : компилировать
[ ИНФОРМАЦИЯ ] +- орг. json : json : банка : 20211205 : компилировать
[ ИНФОРМАЦИЯ ] +- с. Google . код . гсон : гсон : банка : 2.8.9 : компилировать
[ ИНФОРМАЦИЯ ] +- июнь : июнь : банка : 4.13.2 : тест
[ ИНФОРМАЦИЯ ] | \ - орг. подколенное сухожилие : подколенное сухожилие - основной : банка : 1,3 : тест
[ ИНФОРМАЦИЯ ] +- орг. slf4j : slf4j - просто : банка : 1.7.32 : тест
[ ИНФОРМАЦИЯ ] +- с. Кольшуттер . соединительный сокет : соединительный сокет - основной : видеть : 2.4.0 : тест
[ ИНФОРМАЦИЯ ] | +- с. Кольшуттер . соединительный сокет : соединительный сокет - родной - общий : банка : 2.4.0 : тест
[ ИНФОРМАЦИЯ ] | \ - с. Кольшуттер . соединительный сокет : соединительный сокет - общий : банка : 2.4.0 : тест
[ ИНФОРМАЦИЯ ] \ - орг. мокито : мокито - в соответствии : банка : 3.12.4 : тест
[ ИНФОРМАЦИЯ ] \ - орг. мокито : мокито - основной : банка : 3.12.4 : тест
[ ИНФОРМАЦИЯ ] +- сеть. байтбадди : байт - приятель : банка : 1.11.13 : тест
[ ИНФОРМАЦИЯ ] +- сеть. байтбадди : байт - приятель - агент : банка : 1.11.13 : тест
[ ИНФОРМАЦИЯ ] \ - орг. согласовано : согласовано : банка : 3.2 : тест

Как видно из приведенного выше вывода, Maven возвращает все зависимости нашего проекта в формате списка.

Следует иметь в виду, что эта команда требует, чтобы в вашей системе были установлены Maven и Java JDK.

Фильтрация зависимостей

Если вы работаете над большим проектом, вам может быть сложно просматривать и управлять всеми зависимостями с помощью приведенной выше команды.

К счастью, плагин дерева зависимостей Maven позволяет фильтровать отображаемые зависимости. Это означает, что вы можете включить или исключить любую зависимость по своему желанию.

Чтобы включить только определенную зависимость, мы используем параметр Dincludes, как показано в следующем синтаксисе:

mvn зависимость : дерево - Включает [ идентификатор группы ] : [ идентификатор артефакта ] : [ тип ] : [ версия ]

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

Например, чтобы показать, как конкретная зависимость используется в проекте, мы можем запустить следующую команду:

mvn зависимость : дерево - Включает знак равно соединительный сокет : соединительный сокет - основной

Предыдущий код должен вернуть:

[ ИНФОРМАЦИЯ ]
[ ИНФОРМАЦИЯ ] ------------------------< редис клиенты : джедай >-------------------------
[ ИНФОРМАЦИЯ ] Создание джедаев 4.3.0 - СНИМОК
[ ИНФОРМАЦИЯ ] -------------------------------- [ банка ] ----------------------------------
[ ИНФОРМАЦИЯ ]
[ ИНФОРМАЦИЯ ] --- знаток - зависимость - плагин : 2,8 : дерево ( дефолт - Кли ) @ Джедаи ---

Чтобы исключить зависимость из дерева, мы можем использовать параметр -Dincludes, как показано в синтаксисе ниже:

mvn зависимость : дерево - Включает знак равно [ идентификатор группы ] : [ идентификатор артефакта ] : [ тип ] : [ версия ]

Например:

mvn зависимость : дерево - Исключает знак равно соединительный сокет : соединительный сокет - основной

Это должно вернуть вывод, как показано ниже:

Maven Сохранить зависимость в файл

Вы также можете сохранить дерево зависимостей в файл, используя параметр -DoutputFile. Пример показан ниже:

mvn зависимость : дерево - DOutputFile знак равно 'деп.дерево'

В предыдущей команде мы указываем Maven создать дерево зависимостей и сохранить его в файл с именем dep.tree.

Результирующий вывод файла представлен ниже:

+- орг. slf4j : slf4j - API : банка : 1.7.32 : компилировать
+- орг. апач . общины : общины - бассейн2 : банка : 2.11.1 : компилировать
+- орг. json : json : банка : 20211205 : компилировать
+- с. Google . код . гсон : гсон : банка : 2.8.9 : компилировать
+- июнь : июнь : банка : 4.13.2 : тест
| \ - орг. подколенное сухожилие : подколенное сухожилие - основной : банка : 1,3 : тест
+- орг. slf4j : slf4j - просто : банка : 1.7.32 : тест
+- с. Кольшуттер . соединительный сокет : соединительный сокет - основной : видеть : 2.4.0 : тест
| +- с. Кольшуттер . соединительный сокет : соединительный сокет - родной - общий : банка : 2.4.0 : тест
| \ - с. Кольшуттер . соединительный сокет : соединительный сокет - общий : банка : 2.4.0 : тест
\ - орг. мокито : мокито - в соответствии : банка : 3.12.4 : тест
\ - орг. мокито : мокито - основной : банка : 3.12.4 : тест
+- сеть. байтбадди : байт - приятель : банка : 1.11.13 : тест
+- сеть. байтбадди : байт - приятель - агент : банка : 1.11.13 : тест
\ - орг. согласовано : согласовано : банка : 3.2 : тест

Maven будет включать зависимости проекта в файл только в иерархическом порядке.

Вывод

В этом посте рассказывается, как просмотреть дерево зависимостей Maven с помощью подключаемого модуля зависимостей Maven.