2013-07-16 6 views
6

종속성 문제를 감지하기 위해 dependency:analyze을 사용하고 있습니다. 하지만 플러그인이 종속성을 해결하지 못하기 때문에 전 이적 종속성에 문제가 있음을 발견했습니다.Maven 2.1 의존성 : 분석. 전이 의존성 : 사용 된 선언되지 않은 종속성이 사용되었습니다.

mvn dependency : tree를 실행하면 출력에 전이 종속성이 표시됩니다.

종속성

project A 
    dependency B 
project C 
    dependency A 

Outuput -> (프로젝트는 C - 경로)/MVN 클린 설치

[WARNING] Used undeclared dependencies found: 
    dependency B: compile 

플러그인

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <version>2.4</version> 
    <executions> 
     <execution> 
      <id>analyze</id> 
      <phase>verify</phase> 
      <goals> 
       <goal>analyze-only</goal> 
      </goals> 
      <configuration> 
       <failOnWarning>true</failOnWarning> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

플러그인이 전이 종속성을 감지하지 않는 이유

+0

에 정말 충분하지 않은 정보를 의존해야한다. 출력물이 뭐라고 기대 했습니까? 어떤 프로젝트에서 분석을 실행 했습니까? –

+0

프로젝트 C에서 "mvn clean install"을 실행합니다. failOnWarning 옵션을 false로 설정하면 경고가 사라지고 실행이 정상입니다. 플러그인이 전 이적 종속성을 감지하지 못하는 이유 –

답변

5

종속성 분석은 예상대로 작동합니다.

프로젝트 C의 코드는 프로젝트 B의 클래스를 사용하지만 프로젝트 B에만 의존하지는 않습니다. 프로젝트 A를 통해 전이 적으로 B에 의존하기 때문에 컴파일됩니다. 프로젝트 A의 종속성을 변경하면 프로젝트 C가 중단됩니다. 코드 B에서 클래스를 사용하는 경우

피하려고하는 것은이 좋지 않다, 그것은 직접는 귀하의 질문에 대답하려면 여기를 B.

+0

공통 라이브러리 및 코드가 포함되어 있기 때문에 프로젝트 A 종속성이 필요합니다. –

+0

A도 B도 A와 B를 사용합니다. –

+0

아니요,이 작업을해서는 안됩니다. 전이 의존성을 가지고 일하려고합니다. –