2011-01-04 3 views
14

우리 IDE 용 IntelliJ와 함께 Maven 3을 사용하고 있습니다. 컴파일이 끝나면 외부 라이브러리에 봄 2.0 항목이 포함됩니다. Intellij의 Maven Projects 의존성을 살펴보면 봄 2.0에 의존하는 사람이 보이지 않기 때문에 의존하는 대상인 것으로 의심됩니다.Maven에서 항아리가 포함 된 이유를 찾는 방법은 무엇입니까?

내 질문은 어떻게 추적합니까? 내가 mvn dependency:tree -Dverbose -Dincludes=spring-aop 일을 시도하고 심지어 -Dincludes=spring하지만 루트 또는 내가 아는 하위 모듈 디렉토리에서 도망 치면 아무 결과도 얻지 못한다.

답변

12

-Dincludes으로 전달 된 패턴이 잘못되었습니다. Maven Dependency Plugin의 문서에서

, -Dincludes의 구문 StrictPatternIncludesArtifactFilter 의해 정의된다. 이 서브 클래스되는 AbstractStrictPatternArtifactFilter의 자바 독으로부터

아티펙트 패턴 구문은 형태이다

[groupId]:[artifactId]:[type]:[version]

각 패턴 세그먼트는 선택적이며 가득 부분 * 와일드 카드를 지원 . 빈 패턴 세그먼트는 암시 적으로 와일드 카드로 처리됩니다.

예를 들어, org.apache.*는 그 그룹 ID가 org.apache. 시작 모든 이슈와 일치하는 것이며, :::*-SNAPSHOT 모든 스냅 샷을 유물을 일치합니다.

어쩌면 당신은 -Dincludes없이 mvn dependency:tree를 실행하고이 스프링 2.0 관련 의존성을 보여주고 있는지 확인해야한다. 또는 -Dincludes에 적절한 패턴을 지정하십시오.

9

찾고있는 형식이 잘못되었습니다. 이 시도 :

mvn dependency:tree -Dverbose -Dincludes=:spring*:: 

(검색을 어떤 스프링로 시작하는의 groupId와 유물에 대한)

또는이 :

mvn dependency:tree -Dverbose -Dincludes=org.springframework 

(검색을 artifactId를의 org.springframework 어떤 유물에 대한)

+0

위의 명령을 사용하여 특정 jar 파일이 포함 된 이유를 확인했습니다. 그러나 위의 maven 명령이 실행 중이며 빌드가 성공했지만 종속성에 대한 정보는 없다고 말합니다. – Mahiz

3

intellij를 사용하지 않고 쉽게 고칠 수 있습니다. pom.xml을 열고 마우스 오른쪽 버튼을 클릭하여 (상황에 맞는 메뉴 호출) UML> 종속성 표시 (UML 플러그인 사용 가능)를 선택하십시오. 아이디어는 모든 중복 종속성을 표시하며 Alt + Enter 콤보를 사용하여 종속성을 제외 할 수 있습니다. @see : http://blogs.jetbrains.com/idea/2010/05/maven-dependencies-diagram/

관련 문제