Відповіді:
Створіть простий проект лише з pom.xml. Додайте залежність і запустіть:
mvn dependency:tree
На жаль, моджо залежність повинна використовувати pom.xml або ви отримаєте таку помилку:
Неможливо виконати mojo: tree. Для цього потрібен проект із наявним pom.xml, але збірка не використовує.
Залежності описані в pom.xml вашого артефакту. Знайдіть його за допомогою інфраструктури Maven.
Перейдіть на сторінку http://search.maven.org/ та введіть свою групу ID та артефакти.
Або ви можете перейти на http://repo1.maven.org/maven2/ і перейти спочатку за допомогою плагінів groupId, пізніше за допомогою artefactId і, нарешті, за допомогою його версії.
Наприклад, див. Org.springframework: spring-core
Частина артефакту залежності - пом.xml. Це вказує, що це залежність. І ви можете виконати mvn залежність: дерево на цьому пом.
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]
Рішення полягає в виклику залежності: дерево з файлом pom.xml артефакту:
mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree
Див. Також Як перелічити перехідні залежності артефакту від сховища?
Якщо ви використовуєте поточну версію m2eclipse (що вам слід, якщо ви використовуєте eclipse і maven):
Виберіть пункт меню
Navigate -> Open Maven POM
і введіть шуканий артефакт.
Пом відкриється в редакторі пом, з якого ви можете вибрати вкладку Dependency Hierarchy
для перегляду ієрархії залежностей (як випливає з назви :-))
Якщо ваш артефакт не є залежним від конкретного проекту, найкраще скористатись пошуковою системою сховища . Багато з них описують залежності певного артефакту.
Якщо ви хочете отримати графічне представлення дерева залежностей (у тому числі всіх модулів вашого проекту, перехідних залежностей та інформації про виселення), ознайомтеся з UpdateImpact: https://app.updateimpact.com (безкоштовна послуга).
Відмова: Я один із розробників сайту
Я знаю, що цей пост досить старий, але все ж, якщо хтось, хто використовує IntelliJ, хоче бачити дерево залежності безпосередньо в IDE, то він може встановити плагін Maven Helper Plugin .
Після встановлення відкрийте pom.xml і ви зможете побачити вкладку Аналіз залежності , як показано нижче. Він також надає можливість бачити залежність, яка конфліктує лише, а також як структуру дерева.