패키지 충돌
1. Maven을 사용하여 프로젝트를 관리 할 때는 패키지 충돌이 발생할 수 있습니다. 예를 들어, log4j-over-slf4j.jar 및 slf4j-log4j12.jar 일 때 두 패키지가 동시에 함께 실행될 때 문제가 발생합니다.
2.이 충돌은 명백한 종속성 또는 암시 적 의존성으로 인해 발생할 수 있습니다.
명시 적 종속성, pom.xml 파일의 <pectinements>의 충돌 패키지에 대한 참조를 직접 볼 수 있습니다.
암시 적 의존성, POM.XML의 <pectient>에서 충돌하는 패키지를 볼 수는 없지만 <pectopency>에 소개 된 패키지에 의해 간접적으로 소개됩니다.
해결하다
먼저 어떤 종속성이 패키지를 간접적으로 도입했는지 확인하십시오. MVN 종속성 사용 : 트리를 사용하여 전체 프로젝트의 종속성 트리를 볼 수 있습니다. 여기서 간접 종속성을 포함한 모든 종속성을 볼 수 있습니다.
결과는 다음과 유사합니다.
[info] +-hunit : Junit : Jar : 4.12 : 테스트 [정보] | /- org.hamcrest : hamcrest-core : jar : 1.3 : 테스트 [info] +- org.apache.storm : Storm-Core : Jar : 1.0.2 : 제공 [Info] | +-com.esoTericsoftware : kryo : jar : 3.0.3 : 컴파일 [정보] | | /- com.esoTericsoftware : minlog : jar : 1.3.0 : 컴파일 [info] | +- org.clojure : clojure : jar : 1.7.0 : 제공 [정보] | +-com.lmax : disruptor : jar : 3.3.2 : 제공 [정보] | +- org.apache.logging.log4j : log4j-api : jar : 2.1 : 제공 [정보] | +- org.apache.logging.log4j : log4j-core : jar : 2.1 : 제공 [정보] | +-org.apache.logging.log4j : log4j-slf4j-impl : jar : 2.1 : 제공 [정보] | +-org.slf4j : log4j-over-slf4j : jar : 1.6.6 : 제공 [정보] | +-javax.servlet : Servlet-Api : Jar : 2.5 : 제공 [정보] | /-org.slf4j : slf4j-api : jar : 1.7.7 : compile [info] +-com.aaa.khala : aaa-khala-insight-sdk-transfer-api : jar : 1.0.0-snapshot : compile [info] | /-com.aaa.khala : aaa-khala-common : jar : 1.0.0-snapshot : compile [info] | +-javax.mail : javax.mail-api : jar : 1.5.5 : 컴파일 [정보] | +-cglib : cglib : jar : 2.2.2 : 컴파일 [정보] | +- org.aspectj : 종면 : Jar : 1.7.4 : 컴파일 [info] | +- org.aspectj : SASPERJWEAVER : JAR : 1.7.4 : 런타임 [정보] | +- org.javassist : javassist : jar : 3.20.0-ga : compile [info] | +-og4J : log4j : jar : 1.2.17 : 컴파일 [info] | +- org.slf4j : slf4j-log4j12 : jar : 1.7.7 : 컴파일 [info] | +-dom4j : dom4j : jar : 1.6.1 : 컴파일 [정보] | +-Jaxen : Jaxen : Jar : 1.1.6 : 컴파일 [정보] | +- org.apache.commons : Commons-Compress : Jar : 1.6 : 컴파일 [정보] | +- org.apache.commons : Commons-Compress : Jar : 1.6 : 컴파일 [정보] | | /- org.tukaani : xz : jar : 1.4 : 컴파일
충돌 패키지의 해당 종속성을 찾으면 POM.XML의 <pectionenty>에서 제외를 구성하면 패키지가 도입되지 않습니다.
<pectionency> <groupid> com.aaa.khala </groupid> <artifactid> aaa-khala-insight-sdk-transfer-api </artifactid> <bersion> 1.0.0-snapshot </version> <외취> <groupid> org.slf4j </groupid> <artifactid> slf4j-log4j12 </artifactid> </제외> </제외> </fectionency>
읽어 주셔서 감사합니다. 도움이되기를 바랍니다. 이 사이트를 지원 해주셔서 감사합니다!