Как получить дерево зависимостей для артефакта?
dependency:tree
можно использовать для просмотра дерева зависимостей для данного проекта. Но мне нужно увидеть дерево зависимостей для артефакта третьей стороны.
Думаю, я могу создать пустой проект, но я ищу что-то проще (мне нужно сделать это для нескольких артефактов).
Ответы
Ответ 1
Создайте простой проект только с pom.xml. Добавьте свою зависимость и запустите:
mvn dependency:tree
К сожалению зависимость mojo должна использовать pom.xml или вы получите следующую ошибку:
Не удается выполнить mojo: tree. Для этого требуется проект с существующим pom.xml, но сборка не использует его.
2) Найдите pom.xml вашего артефакта в центральном репозитории maven
Зависимости описаны в pom.xml вашего артефакта. Найдите его с помощью инфраструктуры maven.
Перейдите в http://search.maven.org/ и введите свои groupId и artifactId.
Или вы можете перейти в http://repo1.maven.org/maven2/ и сначала перейти с помощью плагинов groupId, позже используя artifactId и, наконец, используя свою версию.
Например, см. org.springframework: spring -core
3) Используйте плагин зависимости maven от вашего артефакта
Часть артефакта зависимости - это pom.xml. Это указывает на его зависимость. И вы можете выполнить mvn dependency: tree на этом pom.
Ответ 2
Вы можете найти конкретный артефакт , используя эту команду maven:
mvn dependency:tree -Dincludes=DESIRED-groupId:DESIRED-artifactId
Представьте, что вы пытаетесь найти jar файл log4j-1.2-api из вашего проекта:
mvn dependency:tree -Dincludes=org.apache.logging.log4j:log4j-1.2-api
можно найти более подробную информацию здесь.
Ответ 3
Решением является вызов зависимости: tree с файлом artfact pom.xml:
mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree
См. также Как перечислить транзитивные зависимости артефакта из репозитория?
Ответ 4
Если вы используете текущую версию m2eclipse (что нужно, если вы используете eclipse и maven):
Выберите запись в меню
Navigate -> Open Maven POM
и введите артефакт, который вы ищете.
pom откроется в редакторе pom, из которого вы можете выбрать вкладку Dependency Hierarchy
, чтобы просмотреть иерархию зависимостей (как следует из названия:-))
Ответ 5
Если ваш артефакт не является зависимостью от конкретного проекта, лучше всего использовать поисковую систему репозитория. Многие из них описывают зависимости данного артефакта.
Ответ 6
Если вы хотите получить графическое, доступное для поиска представление дерева зависимостей (включая все модули из вашего проекта, транзитивные зависимости и информацию о выселении), проверьте UpdateImpact: https://app.updateimpact.com (бесплатный сервис).
Отказ от ответственности: я являюсь одним из разработчиков сайта