Используйте mvn dependency:analyze
, чтобы показать вам, есть ли в вашей помпе зависимости, которые вам не нужны (могут также указываться некоторые, которые вы пропустили, добавьте -DoutputXML=true
, чтобы показать отсутствующие записи).
Используйте mvn dependency:tree
, чтобы показать вам зависимости, которые в данный момент используются вашим проектом, и где Maven их находит. Добавьте -Dverbose=true
, чтобы показать все дубликаты и конфликты.
Если a
напрямую зависит от c
(то есть, если код в a
упоминает классы в c
), то pom должен отражать это. Если a
напрямую зависит только от b
, то вы можете безопасно удалить зависимость c
из файла a
pom.xml. Приведенные выше команды должны позволить вам определить, что является подходящим следующим действием.
Редактировать: Хорошо, вы обновили свой вопрос. Вот как вы это делаете:
- в проекте
a
, запустить mvn dependency:tree -Dverbose=true
. Это покажет вам полное дерево всех зависимостей, рассмотренных Maven для вашего проекта.
- Посмотрите на выходные данные шага 1 и составьте список всех зависимостей, которые показаны на глубине более одного уровня (некоторые из них, вероятно, будут дубликатами).
- Отредактируйте файл pom.xml в любом понравившемся вам редакторе и удалите все зависимости, которые соответствуют списку, созданному на шаге 2.
Или вы ищете способ сделать это автоматически? Я не думаю, что есть какой-либо автоматизированный способ, если вы не пишете его самостоятельно, потому что вы пытаетесь сделать ПЛОХАЯ ИДЕЯ . Вы говорите людям, что их возражения «не имеют отношения» к вашему вопросу, но факт в том, что ваш вопрос похож на вопрос «Как я могу использовать Maven, чтобы затруднить использование Maven?»
Нет веской причины, почему вы хотели бы сделать это. Если вы думаете, что есть веская причина, вы должны пытаться сделать это, чтобы получить какой-то результат. Вам следует обратиться за помощью к желаемому результату, потому что ваш план плохой.