Получить все сторонние зависимости, которые модуль использует в Maven

У нас есть многомодульный проект maven. У меня есть вариант использования, когда я хочу получить список всех зависимостей, которые используются в коде с версией:

  1. Если он объявлен в pom и используется.
  2. Не объявлен в pom, но все еще используется (переходно импортируется).

Бонусом было бы, если бы этот подход мог исключить deps, которые объявляются в pom, но не используются в коде.

Пожалуйста, предложите лучший способ добиться этого. ТИА.


person bewithaman    schedule 09.08.2020    source источник
comment
Отвечает ли это на ваш вопрос? Как получить список зависимостей maven и репозиториев, из которых они были извлечены   -  person PiRocks    schedule 09.08.2020


Ответы (2)


Просто используйте команду mvn dependency:tree.

person Tobias Miosczka    schedule 09.08.2020
comment
это не работает правильно на уровне модуля. Я запустил его для одного модуля низкого уровня, и он напечатал транзитивную зависимость, которая использовалась не в этом модуле, а в каком-то другом модуле более высокого уровня. - person bewithaman; 10.08.2020

Существует плагин зависимостей Maven:

Плагин зависимостей предоставляет возможность манипулировать артефактами. Он может копировать и/или распаковывать артефакты из локальных или удаленных репозиториев в указанное место.

с его целью tree:

Отображает дерево зависимостей для этого проекта.

Что касается вашего бонуса, есть цель analyze:

анализирует зависимости этого проекта и определяет, какие из них: используемые и объявленные; б/у и незадекларированные; неиспользованные и заявленные.

и цель только для анализа:

то же самое, что и analysis, но предназначено для связывания в pom. Он не разветвляет сборку и не выполняет тестовую компиляцию.

person Gerold Broser    schedule 09.08.2020
comment
это не работает правильно на уровне модуля. Я запустил его для одного модуля низкого уровня, и он напечатал транзитивную зависимость, которая использовалась не в этом модуле, а в каком-то другом модуле более высокого уровня. - person bewithaman; 10.08.2020
comment
@bewithaman Больше ничего не могу сказать. Давно им не пользовался и, конечно, не знаю вашего окружения. Если да, то это тема для другого вопроса. - person Gerold Broser; 10.08.2020