프로젝트 B와 JUnit-11에 의존하는 프로젝트 A를 개발하고 있다고 가정 해 보겠습니다.Maven 재귀 의존성 배제
A -> junit-11 and B
프로젝트 B는 프로젝트 C 및 JUnit-8에 종속됩니다. 하지만 이미 패키지되어 있고 내용을 수정하는 데 아무런 통제권이 없습니다.
B -> junit-8 and C
프로젝트 C는 jUnit-8에도 종속됩니다.
이제 문제는 프로젝트 (프로젝트 A)를 빌드 할 때 jUnit-8이 컴파일을 중단시키는 것입니다. 내 pom.xml에서이를 정의 할 때 jUnit-8에 대한 프로젝트 B의 종속성을 제외 할 수 있지만 프로젝트 C의 종속성에 전파하지는 않습니다. 결과적으로 jUnit-8은 여전히 다운로드되고 프로젝트가 중단됩니다.
Project A (My Project) :pom.xml:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>B</groupId>
<artifactId>B</artifactId>
<version>1.0</version>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</dependency>
</dependencies>
Project B (Existing project):pom.xml:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8</version>
</dependency>
<dependency>
<groupId>C</groupId>
<artifactId>C</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
Project C (Existing project):pom.xml:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8</version>
</dependency>
</dependencies>
모든 하위 종속에서의 JUnit-8 제외 재귀 배제를 정의하는 방법에 대한 조언 : 여기
은 종래의 pom.xml입니까?
그것은'' 시험 에없는 그 선언의 JUnit 종속성을 가지고 이상한입니다. –
글쎄, 그들은 테스트 범위와 함께 선언하지만 여기서는이를 간단하게 제거했습니다. 게다가 테스트 범위에만 국한되지 않는 다른 종속성과 비슷한 문제가 있습니다. – reza