저는 회사에서 내부적으로 사용할 응용 프로그램을 개발 중입니다. 다른 내부 시스템과 상호 작용하려면 내부적으로 사용하는 일부 종속성을 사용해야하지만 외부에서 필요한 타사 종속성을 사용하는 데 문제가 발생합니다. Maven : 중복 의존성 해결
그래서 기본적으로 내 치어는 다음과 같습니다<dependencies>
<dependency>
internal-framework-artifact
</dependency>
<dependency>
necessary-third-party-artifact
</dependency>
</dependencies>
내가 이러한 종속성 모두 가지고 찾아 왔어요 아파치의 commons-collections
자신의 종속성 중 하나로서 (다른 사람의 많은 수의 사이,하지만 우리 이 질문의 단순성을 위해 하나에 보관하십시오). 나는 commons-collections
치어 그들 모두에 제외 규칙을 배치하면
것은 내가 프로젝트를 컴파일 할 수 있습니다,하지만 내 결과 항아리 commons-collections
의 버전 중 하나에 액세스 할 수 없습니다 단지 java.lang.NoClassDefFoundError
예외가 발생합니다. 그들 중 하나에 제외 규칙을 제거하는 것은 단지 MVN 컴파일러 오류가 발생합니다 :
[WARNING] Rule 2: org.apache.maven.plugins.enforcer.BanDuplicateClasses failed with message: Duplicate classes found:
나는 다양한 그래서 Q/A의를 통해 찾아 봤는데와 정말 100 % 관련이 뭔가를 찾을 수 없습니다 내 상태. 이 문제를 해결하는 방법에 관해서는 정말 실망 스럽습니다. 나는 정말 분명한 것을 놓치고 있는가?
내가 언급 한 것처럼, 그것들 중 하나에서 제외하면 위에 인용 한 maven 오류가 발생합니다. 왜 또는 무엇을해야할지 모르겠습니다. 그것은 정말로 나의 질문의 핵심이다. –
이'mvn dependency : tree -Doutput =/path/to/file'을 실행하고 그 결과를 조사 할 것을 제안합니다. – BevynQ
두 가지 모두에 대한 제외 사항을 추가하여 공유 컬렉션에 대한 자신의 종속성을 시도 했습니까? 이것은 컴파일해야하고 항아리를 행복하게 유지해야합니다. 이로 인해 런타임 오류가 발생하면 하나 또는 다른 프레임 워크를 업그레이드해야 할 수 있습니다. – kiwiron