Utwórz prosty projekt tylko z pom.xml. Dodaj swoją zależność i uruchom:
mvn dependency:tree
Niestety zależność mojo musi używać pom.xml lub pojawia się następujący błąd:
Nie można wykonać mojo: tree. Wymaga projektu z istniejącym pom.xml, ale kompilacja go nie używa.
2) Znajdź pom.xml swojego artefaktu w centralnym repozytorium maven
Zależności są opisane w pom.xml twojego artefaktu. Znajdź go za pomocą infrastruktury maven.
Przejdź do http://search.maven.org/ i wprowadź swój groupId oraz artifactId.
Lub możesz przejść do http://repo1.maven.org/maven2/ i nawigować najpierw za pomocą plugins groupId, później używając artifactId i wreszcie używając jego wersji.
Na przykład zobacz org.springframework: spring-core
3) Użyj wtyczki zależności maven przeciwko artefaktowi
Częścią artefaktu zależności jest plik pom.xml. To określa jego zależność. I możesz wykonać zależność mvn: tree na tym pom.
pom.xml
plikami) może wystąpić błąd. Spróbujmvn compile dependency:tree
więc.Jeśli zawracasz sobie głowę tworzeniem przykładowego projektu i dodaniem do niego zależności od innej firmy, możesz uruchomić następujące czynności, aby zobaczyć pełną hierarchię zależności.
Możesz wyszukać konkretny artefakt za pomocą tego polecenia maven:
Zgodnie z dokumentacją:
Wyobraź sobie, że próbujesz znaleźć plik jar „log4j-1.2-api” w różnych modułach projektu:
więcej informacji można znaleźć tutaj .
Edycja: pamiętaj, że pomimo zalet używania parametru pełnego , może nie być tak dokładny w niektórych warunkach. Ponieważ używa algorytmu Maven 2 i może dawać nieprawidłowe wyniki, gdy jest używany z Maven 3.
źródło
-Dverbose
wystarczyło, aby pokazać mi całe drzewo, którego potrzebowałem. Przekierowanie wyjścia doless
lubincludes
czegoś podobnego i wykonanie szybkiego wyszukiwania działa świetnie, jeśli nie pamiętasz flagi lub nie chcesz podawać pełnej lub wieloznacznejgroupId
:)[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]
Rozwiązaniem jest wywołanie zależności: drzewo z plikiem pom.xml artefaktu:
Zobacz także Jak wyświetlić listę zależności przechodnich artefaktu z repozytorium?
źródło
Jeśli używasz aktualnej wersji m2eclipse (co powinieneś zrobić, jeśli używasz eclipse i maven):
Wybierz pozycję menu
Navigate -> Open Maven POM
i wejdź do poszukiwanego artefaktu.
Pom otworzy się w edytorze pom, z którego możesz wybrać zakładkę,
Dependency Hierarchy
aby wyświetlić hierarchię zależności (jak sugeruje nazwa :-))źródło
Jeśli twój artefakt nie jest zależny od danego projektu, najlepiej jest skorzystać z wyszukiwarki repozytorium . Wiele z nich opisuje zależności danego artefaktu.
źródło
Jeśli chcesz uzyskać graficzną reprezentację drzewa zależności z możliwością wyszukiwania (w tym wszystkie moduły z projektu, zależności przechodnie i informacje o eksmisji), sprawdź UpdateImpact: https://app.updateimpact.com (bezpłatna usługa).
Zastrzeżenie: jestem jednym z twórców strony
źródło
Wiem, że ten post jest dość stary, ale mimo to, jeśli ktoś używający IntelliJ chce zobaczyć drzewo zależności bezpośrednio w IDE, może zainstalować wtyczkę Maven Helper Plugin .
Po zainstalowaniu otwórz pom.xml i zobaczysz zakładkę Analiza zależności , jak poniżej. Zapewnia również opcję zobaczenia zależności, które są w konflikcie, a także jako struktury drzewa.
źródło