Ответы:
Создайте простой проект, используя только pom.xml. Добавьте свою зависимость и запустите:
mvn dependency:tree
К сожалению, mojo зависимости должен использовать pom.xml, иначе вы получите следующую ошибку:
Невозможно выполнить mojo: tree. Требуется проект с существующим pom.xml, но сборка его не использует.
Зависимости описаны в pom.xml вашего артефакта. Найдите его с помощью инфраструктуры maven.
Перейдите на http://search.maven.org/ и введите свой groupId и artifactId.
Или вы можете перейти на http://repo1.maven.org/maven2/ и сначала использовать подключаемый модуль groupId, затем использовать artifactId и, наконец, использовать его версию.
Например, см. Org.springframework: spring-core
Часть артефакта зависимости - это файл pom.xml. Это указывает на его зависимость. И вы можете выполнить mvn dependency: tree на этом pom.
pom.xml
файлами) вы можете получить ошибку. mvn compile dependency:tree
Тогда попробуй .
Если вы потрудитесь создать образец проекта и добавить к нему свою стороннюю зависимость, то вы можете запустить следующее, чтобы увидеть полную иерархию зависимостей.
Вы можете найти определенный артефакт с помощью этой команды maven:
mvn dependency:tree -Dverbose -Dincludes=[groupId]:[artifactId]:[type]:[version]
По документации:
где каждый сегмент шаблона является необязательным и поддерживает полные и частичные подстановочные знаки *. Пустой сегмент шаблона рассматривается как неявный подстановочный знак.
Представьте, что вы пытаетесь найти файл jar log4j-1.2-api среди различных модулей вашего проекта:
mvn dependency:tree -Dverbose -Dincludes=org.apache.logging.log4j:log4j-1.2-api
более подробную информацию можно найти здесь .
Изменить: обратите внимание, что, несмотря на преимущества использования подробного параметра, в некоторых условиях он может быть не таким точным. Потому что он использует алгоритм Maven 2 и может давать неверные результаты при использовании с Maven 3.
-Dverbose
было достаточно, чтобы показать мне полное дерево, которое мне было нужно. Перенаправив вывод less
или аналогичный и делать быстрый поиск отлично работаешь , если вы не можете вспомнить includes
флаг или не хотите , чтобы обеспечить полный или безразличный groupId
:)
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.8:tree (default-cli): Goal requires a project to execute but there is no POM in this directory (...). Please verify you invoked Maven from the correct directory. -> [Help 1]
Решение - вызвать dependency: tree с файлом pom.xml артефакта:
mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree
См. Также Как составить список транзитивных зависимостей артефакта из репозитория?
Если вы используете текущую версию m2eclipse (что вам нужно, если вы используете eclipse и maven):
Выберите пункт меню
Navigate -> Open Maven POM
и введите артефакт, который вы ищете.
Pom откроется в редакторе pom, в котором вы можете выбрать вкладку Dependency Hierarchy
для просмотра иерархии зависимостей (как следует из названия :-))
Если ваш артефакт не является зависимостью данного проекта, лучше всего использовать поисковую систему репозитория . Многие из них описывают зависимости данного артефакта.
Если вы хотите получить графическое представление дерева зависимостей с возможностью поиска (включая все модули из вашего проекта, транзитивные зависимости и информацию о выселении), посетите UpdateImpact: https://app.updateimpact.com (бесплатная услуга).
Отказ от ответственности: я один из разработчиков сайта
Я знаю, что этот пост довольно старый, но все же, если кто-то, использующий IntelliJ, хочет видеть дерево зависимостей непосредственно в IDE, он может установить плагин Maven Helper. .
После установки откройте pom.xml, и вы сможете увидеть вкладку Dependency Analyze, как показано ниже. Он также предоставляет возможность видеть только конфликтующие зависимости, а также в виде древовидной структуры.