Как в Maven 2 узнать, от какой зависимости возникает транзитивная зависимость?


97

Я хотел бы знать, какая зависимость, описанная в моем pom.xml, вызывает транзитивную зависимость в моем целевом каталоге.

Чтобы быть более точным, у меня есть библиотека poi-2.5.1-final-20040804.jar в моем каталоге WEB-INF / lib, и я хотел бы знать, какая зависимость в моем pom.xml дает это.

Ответы:


132

Чтобы добавить к @David Crow, вот пример dependency: tree с сайта Maven:

mvn dependency:tree -Dincludes=velocity:velocity

может выводить

[INFO] [dependency:tree]
[INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
[INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
[INFO]    \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
[INFO]       \- velocity:velocity:jar:1.4:compile

1
У меня это не сработало; все, что у меня было, это ошибки о неподдерживаемых «устаревших» значениях. Однако запуск версии @David Crow (т.е. без флага скорости) работал нормально.
Влад Шнаковский



2

Вы можете получить много отчетов

сайт mvn

Один из них - отчет о зависимостях.


1

Если вы запустите maven с переключателем «-x», он распечатает множество диагностических данных, я думаю, оттуда можно выбрать соответствующий путь зависимости.


2
На самом деле этот ответ полезен. Я столкнулся с хорошо известной ошибкой undefined класса эфира, вызванной обновлением моего Maven с 3.0 до 3.3, и следующая команда показала, что другой плагин maven по-прежнему использует версию 3.0.5 org.apache.maven: maven-core: mvn -X dependency:tree -Dverbose |grep -C20 sonatype.aether
ekarak

Хотя "-X" (верхний регистр, альтернативное имя "--debug") часто бывает полезным, он не сообщает вам происхождение номера версии. Во всяком случае, не на Maven 3.6.0.
toolforger

1

Информация о зависимостях также включается в отчет Project Information / Dependencies, если у вас есть maven для создания сайта для проекта с помощью mvn site.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.