Conflit de paquets
1. Lorsque vous utilisez Maven pour gérer des projets, vous pouvez rencontrer des conflits de package. Par exemple, lorsque log4j-over-slf4j.jar et slf4j-log4j12.jar, il y aura des problèmes lorsque les deux packages seront exécutés ensemble en même temps.
2. Ce conflit peut être causé par des dépendances explicites ou des dépendances implicites.
Dépendances explicites, vous pouvez voir directement les références à deux packages contradictoires à partir de la <dependency> du fichier pom.xml.
Les dépendances implicites, les packages conflictuels ne peuvent pas être vus dans la <dependency> de pom.xml, mais sont indirectement introduits par les packages introduits dans <Dependance>.
résoudre
Confirmez d'abord quelles dépendances ont indirectement introduit le package. Utilisez MVN Dependency: Tree pour afficher l'arbre de dépendance de l'ensemble du projet, où vous pouvez voir toutes les dépendances, y compris les dépendances indirectes.
Les résultats sont similaires à ce qui suit:
[Info] + - Junit: Junit: Jar: 4.12: Tester [info] | / - org.hamcrest: Hamcrest-core: jar: 1.3: test [info] + - org.apache.storm: Storm-core: jar: 1.0.2: fourni [info] | + - com.esotericsoftware: kryo: jar: 3.0.3: compiler [info] | | / - com.esotericsoftware: minlog: jar: 1.3.0: compiler [info] | + - org.clojure: Clojure: Jar: 1.7.0: fourni [info] | + - com.lmax: perturbateur: pot: 3.3.2: fourni [info] | + - org.apache.logging.log4j: log4j-api: jar: 2.1: fourni [info] | + - org.apache.logging.log4j: log4j-core: jar: 2.1: fourni [info] | + - org.apache.logging.log4j: log4j-slf4j-implp: jar: 2.1: fourni [info] | + - org.slf4j: log4j-over-slf4j: jar: 1.6.6: fourni [info] | + - Javax.servlet: Servlet-API: JAR: 2.5: Fourni [info] | / - org.slf4j: slf4j-api: jar: 1.7.7: compiler [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: compiler [info] | + - CGLIB: CGLIB: JAR: 2.2.2: compiler [info] | + - org.aspectj: aspectjrt: jar: 1.7.4: compiler [info] | + - org.aspectj: aspectjwweaver: jar: 1.7.4: runtime [info] | + - org.javassist: javassist: jar: 3.20.0-ga: compiler [info] | + - log4j: log4j: jar: 1.2.17: compiler [info] | + - org.slf4j: slf4j-log4j12: jar: 1.7.7: compiler [info] | + - DOM4J: DOM4J: JAR: 1.6.1: compiler [info] | + - Jaxen: Jaxen: Jar: 1.1.6: compiler [info] | + - org.apache.commons: Commons-Compress: Jar: 1.6: compiler [info] | + - org.apache.commons: Commons-Compress: Jar: 1.6: compiler [info] | | / - org.tukaani: XZ: Jar: 1.4: Compiler
Si vous trouvez les dépendances correspondantes du package contradictoire, configurez l'exclusion dans la <dependency> de pom.xml, le package ne sera pas introduit, par exemple:
<dependency> <proupId> com.aaa.khala </rompupid> <letifactive> aaa-khala-insight-sdk-transfer-api </ artifactId> <version> 1.0.0-snapshot </-version> <cusclusions> <cuslusion> <proupId> org.slf4j </proncID> <ArtefactId> SLF4J-LOG4J12 </ Artifactid> </clusion> </clusion> </Dependency>
Merci d'avoir lu, j'espère que cela peut vous aider. Merci pour votre soutien à ce site!