아티팩트에 대한 종속성 트리를 얻는 방법은 무엇입니까?


123

dependency:tree주어진 프로젝트에 대한 종속성 트리를 보는 데 사용할 수 있습니다. 하지만 필요한 것은 타사 아티팩트에 대한 종속성 트리를 보는 것입니다.

빈 프로젝트를 만들 수 있다고 생각하지만 더 쉬운 것을 찾고 있습니다 (여러 아티팩트에 대해이 작업을 수행해야합니다).

답변:


158

1) Maven 종속성 플러그인 사용

pom.xml 만 사용하여 간단한 프로젝트를 만듭니다. 종속성을 추가하고 다음을 실행하십시오.

mvn dependency:tree

불행히도 종속성 mojo 는 pom.xml을 사용해야합니다. 그렇지 않으면 다음 오류가 발생합니다.

mojo : tree를 실행할 수 없습니다. 기존 pom.xml이있는 프로젝트가 필요하지만 빌드에서 사용하지 않습니다.

2) Maven 중앙 저장소에서 아티팩트의 pom.xml 찾기

종속성은 아티팩트의 pom.xml에 설명되어 있습니다. Maven 인프라를 사용하여 찾으십시오.

http://search.maven.org/로 이동 하여 groupId 및 artifactId를 입력하십시오.

또는 http://repo1.maven.org/maven2/ 로 이동하여 먼저 플러그인 groupId를 사용하여 탐색하고 나중에 artifactId를 사용하고 마지막으로 해당 버전을 사용할 수 있습니다.

예를 들어 org.springframework : spring-core 를 참조하십시오 .

3) 아티팩트에 대해 Maven 종속성 플러그인 사용

종속성 아티팩트의 일부는 pom.xml입니다. 그것은 의존성을 지정합니다. 그리고이 pom에서 mvn dependency : tree 를 실행할 수 있습니다 .


3
내가 말했듯이, 나는 프로젝트를 만들 필요가 없도록하고 싶다
IttayD

프로젝트를 '생성'하는 것이 아니라 POM 파일을 다운로드하는 것입니다.
Sean Patrick Floyd

1
새 프로젝트를 만들 필요가 없습니다. 그냥 로컬 저장소에 살펴과 atifact의 pom.xml 파일 찾기
AMRA

자식 모듈이 없으면 작동하지 않습니다. 예 :```mvn -f ~ / .m2 / repository / org / jboss / shrinkwrap / descriptors / shrinkwrap-descriptors-parent / 2.0.0-alpha-10 / shrinkwrap-descriptors-parent-2.0.0-alpha-10. pom depen dency : tree [정보] 프로젝트 검색 중 ... [오류] [오류] POM을 처리하는 동안 몇 가지 문제가 발생했습니다. [오류] 하위 모듈 ~ / .m2 / repository / org / jboss / shrinkwrap / descriptors / shrinkwrap -descriptors-parent / 2.0.0-alpha-10 / api-base of ... / descriptors-parent / 2.0.0-alpha-10 / shrinkwrap-descriptors-parent-2.0.0-alpha-10.pom은 그렇지 않습니다. 존재```
Ding-Yi Chen

1
다중 모듈 Maven 프로젝트 (예 : 여러 pom.xml파일이있는 프로젝트 )의 경우 오류가 발생할 수 있습니다. mvn compile dependency:tree그럼 해봐 .
izogfif

49

샘플 프로젝트를 만들고 여기에 타사 종속성을 추가해야하는 경우 다음을 실행하여 종속성의 전체 계층 구조를 볼 수 있습니다.

다음 maven 명령을 사용하여 특정 아티팩트 를 검색 할 수 있습니다 .

mvn dependency:tree -Dverbose -Dincludes=[groupId]:[artifactId]:[type]:[version]

문서에 따르면 :

여기서 각 패턴 세그먼트는 선택 사항이며 전체 및 부분 * 와일드 카드를 지원합니다. 빈 패턴 세그먼트는 암시 적 와일드 카드로 처리됩니다.

프로젝트의 여러 모듈 중에서 'log4j-1.2-api'jar 파일을 찾으려고한다고 가정 해보십시오.

mvn dependency:tree -Dverbose -Dincludes=org.apache.logging.log4j:log4j-1.2-api

자세한 정보는 여기 에서 찾을 수 있습니다 .

편집 : 자세한 매개 변수 사용의 장점에도 불구하고 일부 조건에서는 정확하지 않을 수 있습니다. Maven 2 알고리즘을 사용하고 Maven 3과 함께 사용할 때 잘못된 결과를 제공 할 수 있기 때문입니다.


2
좋은 제안! -Dverbose필요한 전체 나무를 보여주기에 충분했습니다. 출력을 less또는 이와 유사하게 파이핑하고 빠른 검색을 수행하면 includes플래그를 기억할 수 없거나 전체 또는 와일드 카드를 제공하지 않으려는 경우 groupId
유용합니다.

보고있는 아티팩트가 포함 된 pom.xml이 없으면 작동하지 않습니다. 그렇지 않으면 얻을[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]
Eisenknurr

-Dverbose는 종속성 플러그인에서 더 이상 사용되지 않으므로 꽤 오래된 버전을 사용하지 않는 한 더 이상 작동하지 않습니다.
toolforger

6

해결책은 아티팩트의 pom.xml 파일로 dependency : tree를 호출하는 것입니다.

mvn -f "$HOME/.m2/repository/$POM_PATH" dependency:tree

저장소에서 아티팩트의 전이 종속성을 나열하는 방법 도 참조하십시오 .


이는 'distributionManagement.status'로 인해 중앙 저장소에서 다운로드 한 아티팩트에서는 작동하지 않을 수 있습니다. 업로드시 중앙 저장소에서 추가됩니다. 그리고 이것은 dependency : tree가 pom 파일에 대한 유효성 검사를 실패하게 만듭니다. 참조 issues.apache.org/jira/browse/MNG-3178
아르노 Jeansen

2

현재 버전의 m2eclipse 를 사용하는 경우 (eclipse 및 maven을 사용하는 경우 사용해야 함) :

메뉴 항목 선택

Navigate -> Open Maven POM

찾고있는 유물을 입력하십시오.

pom은 pom 편집기에서 열리 며 탭 Dependency Hierarchy을 선택 하여 종속성 계층 구조를 볼 수 있습니다 (이름에서 알 수 있듯이 :-)).


2
OK,이 대답은 :-) 다른 사용자를위한 것입니다
숀 패트릭 플로이드

1

아티팩트가 주어진 프로젝트의 종속성이 아닌 경우 가장 좋은 방법은 저장소 검색 엔진 을 사용하는 것 입니다. 그들 중 다수는 주어진 아티팩트의 종속성을 설명합니다.


내가 관심있는 유물은 회사 제품의 일부입니다.
IttayD

그럼 amra의 대답이 최선의 방법입니다. 두렵습니다.
Sean Patrick Floyd

@IttayD : 질문에 이런 종류의 중요한 세부 사항 을 언급하지 않으 시겠습니까? 이것은 IMHO에 대한 더 나은 답변을 얻는 데 도움이 될 것입니다 (또한 독자가 시간을 낭비하지 않도록 도울 수 있습니다).
Pascal Thivent

0

종속성 트리 (프로젝트의 모든 모듈, 전이 종속성 및 제거 정보 포함)의 그래픽 및 검색 가능한 표현을 얻으려면 UpdateImpact : https://app.updateimpact.com (무료 서비스)을 확인하십시오.

면책 조항 : 저는 사이트 개발자 중 한 명입니다.


0

이 게시물이 꽤 오래 되었다는 것을 알고 있지만 IntelliJ를 사용하는 사람 이 IDE에서 직접 종속성 트리를보고 싶다면 Maven Helper Plugin 플러그인을 설치할 수 있습니다 .

pom.xml을 설치하면 아래와 같이 Dependency Analyze 탭 을 볼 수 있습니다. 또한 충돌하는 종속성을 트리 구조로만 볼 수있는 옵션도 제공합니다.

여기에 이미지 설명 입력

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.