Conflicto de paquetes
1. Al usar Maven para administrar proyectos, puede encontrar conflictos de paquetes. Por ejemplo, cuando log4j-over-slf4j.jar y slf4j-log4j12.Jar, habrá problemas cuando los dos paquetes se ejecuten juntos al mismo tiempo.
2. Este conflicto puede ser causado por dependencias explícitas o dependencias implícitas.
Dependencias explícitas, puede ver directamente las referencias a dos paquetes conflictivos de la <pendencia> del archivo pom.xml.
Las dependencias implícitas, los paquetes conflictivos no se pueden ver en la <pendencia> de pom.xml, pero son introducidos indirectamente por los paquetes introducidos en <Pependency>.
resolver
Primero confirme qué dependencias han introducido indirectamente el paquete. Use la dependencia de MVN: árbol para ver el árbol de dependencia de todo el proyecto, donde puede ver todas las dependencias, incluidas las dependencias indirectas.
Los resultados son similares a los siguientes:
[Info] +- Junit: Junit: Jar: 4.12: Test [Info] | /- org.hamcrest: hamcrest-core: jar: 1.3: prueba [información] +- org.apache.storm: tormenta: jar: 1.0.2: proporcionado [información] | +- com.esotericsoftware: KRyo: jar: 3.0.3: compilar [información] | | /- com.esotericsoftware: minlog: jar: 1.3.0: compilar [información] | +- org.clojure: clojure: jar: 1.7.0: proporcionado [información] | +- com.lmax: disruptor: jar: 3.3.2: proporcionado [información] | +- org.apache.logging.log4j: log4j-api: jar: 2.1: proporcionado [información] | +- org.apache.logging.log4j: log4j-core: jar: 2.1: proporcionado [información] | +-org.apache.logging.log4j: log4j-slf4j-impl: jar: 2.1: proporcionado [info] | +-org.slf4j: log4j-over-slf4j: jar: 1.6.6: proporcionado [información] | +- javax.servlet: servlet-api: jar: 2.5: proporcionado [información] | /-org.slf4j: slf4j-api: jar: 1.7.7: compilar [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: compilar [información] | +- javax.mail: javax.mail-api: jar: 1.5.5: compilar [información] | +- cglib: cglib: jar: 2.2.2: compilar [información] | +- org.spectj: aspectojrt: jar: 1.7.4: compilar [información] | +- org.spectj: spectJWeaver: jar: 1.7.4: tiempo de ejecución [info] | +- org.javassist: javassist: jar: 3.20.0-ga: compilar [información] | +- log4j: log4j: jar: 1.2.17: compilar [información] | +- org.slf4j: slf4j-log4j12: jar: 1.7.7: compilar [información] | +- dom4j: dom4j: jar: 1.6.1: compilar [información] | +- jaxen: jaxen: jar: 1.1.6: compilar [información] | +- org.apache.commons: commons-compress: jar: 1.6: compilar [información] | +- org.apache.commons: commons-compress: jar: 1.6: compilar [información] | | /- org.tukaani: xz: jar: 1.4: compilar
Si encuentra las dependencias correspondientes del paquete en conflicto, configure la exclusión en <Pependency> de Pom.xml, el paquete no se introducirá, por ejemplo:
<Spendency> <MoupRid> com.aaa.khala </proupid> <artifactid> aaa-khala-insight-sdk-transfer-api </arfactid> <versión> 1.0.0-snapshot </versewers> <excusions> <cextusion> <pactuid> org.slf4j </groupid> <artifactid> slf4j-lag412 <tart/artemiT> </art. </sclusion> </exclusiones> </pendency>
Gracias por leer, espero que pueda ayudarte. ¡Gracias por su apoyo para este sitio!