maven 스텔스 의존으로 인한 패키지 충돌 해결 방법

패키지 충돌
1. 마븐 관리 프로젝트를 사용할 때 패키지 충돌이 발생할 수 있습니다. 예를 들어log4j-over-slf4j.jar와 slf4j-log4j12.jar 이 두 가방이 동시에 실행될 때 문제가 있습니다.
2. 이런 충돌은 현식 의존으로 인한 것일 수도 있고 은식 의존으로 인한 것일 수도 있다.
현식 의존, 직접pom.xml 파일의 에서 두 충돌 패키지의 인용을 볼 수 있습니다.
은식 의존,pom.xml의 는 충돌하는 가방을 볼 수 없습니다. 가 도입한 가방이 간접적으로 도입된 것입니다.
해결하다
어떤 의존이 간접적으로 가방에 도입되었는지 먼저 확인하세요.mvn dependency:tree를 사용하여 전체 프로젝트의 의존 트리를 볼 수 있습니다. 간접 의존을 포함하여 모든 의존을 볼 수 있습니다.
결과는 다음과 같습니다.

[INFO] +- junit:junit:jar:4.12:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- org.apache.storm:storm-core:jar:1.0.2:provided
[INFO] | +- com.esotericsoftware:kryo:jar:3.0.3:compile
[INFO] | | \- com.esotericsoftware:minlog:jar:1.3.0:compile
[INFO] | +- org.clojure:clojure:jar:1.7.0:provided
[INFO] | +- com.lmax:disruptor:jar:3.3.2:provided
[INFO] | +- org.apache.logging.log4j:log4j-api:jar:2.1:provided
[INFO] | +- org.apache.logging.log4j:log4j-core:jar:2.1:provided
[INFO] | +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.1:provided
[INFO] | +- org.slf4j:log4j-over-slf4j:jar:1.6.6:provided
[INFO] | +- javax.servlet:servlet-api:jar:2.5:provided
[INFO] | \- 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:compile
[INFO] |   +- cglib:cglib:jar:2.2.2:compile
[INFO] |   +- org.aspectj:aspectjrt:jar:1.7.4:compile
[INFO] |   +- org.aspectj:aspectjweaver:jar:1.7.4:runtime
[INFO] |   +- org.javassist:javassist:jar:3.20.0-GA:compile
[INFO] |   +- log4j:log4j:jar:1.2.17:compile
[INFO] |   +- org.slf4j:slf4j-log4j12:jar:1.7.7:compile
[INFO] |   +- dom4j:dom4j:jar:1.6.1:compile
[INFO] |   +- jaxen:jaxen:jar:1.1.6:compile
[INFO] |   +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] |   +- commons-codec:commons-codec:jar:1.9:compile
[INFO] |   +- commons-beanutils:commons-beanutils:jar:1.9.2:compile
[INFO] |   +- org.apache.commons:commons-compress:jar:1.6:compile
[INFO] |   | \- org.tukaani:xz:jar:1.4:compile
충돌 패키지에 대한 의존을 찾았습니다.pom.xml의 에서 설정을 제외하면 이 패키지를 도입하지 않습니다. 예를 들어 다음과 같습니다.

<dependency>
  <groupId>com.aaa.khala</groupId>
  <artifactId>aaa-khala-insight-sdk-transfer-api</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <exclusions> 
    <exclusion> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
    </exclusion> 
  </exclusions>
</dependency>  
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기