Paketkonflikt
1. Bei der Verwendung von Maven zum Verwalten von Projekten können Sie Paketkonflikte begegnen. Wenn beispielsweise log4j-over-slf4j.jar und slf4j-log4j12.jar Probleme geben, wird es Probleme geben, wenn die beiden Pakete gleichzeitig zusammen ausgeführt werden.
2. Dieser Konflikt kann durch explizite Abhängigkeiten oder implizite Abhängigkeiten verursacht werden.
Explizite Abhängigkeiten, Sie können direkt Verweise auf zwei widersprüchliche Pakete aus der <Emporcy> der pom.xml -Datei sehen.
Implizite Abhängigkeiten, widersprüchliche Pakete sind im <Ependentus> von pom.xml nicht zu sehen, werden jedoch indirekt durch die in <depeation> eingeführten Pakete eingeführt.
lösen
Bestätigen Sie zunächst, welche Abhängigkeiten das Paket indirekt eingeführt haben. Verwenden Sie die MVN -Abhängigkeit: Baum, um den Abhängigkeitsbaum des gesamten Projekts anzuzeigen, in dem Sie alle Abhängigkeiten, einschließlich indirekter Abhängigkeiten, sehen können.
Die Ergebnisse ähneln den folgenden:
[Info] +- jungit: jungit: jar: 4.12: test [info] | /- org.hamcrest: hamcrest-core: jar: 1.3: test [info] +- org.apache.storm: storm-core: jar: 1.0.2: bereitgestellt [info] | +- com.esotericsoftware: Kryo: Jar: 3.0.3: kompilieren [info] | | /- com.esotericsoftware: minlog: jar: 1.3.0: compile [info] | +- org.clojure: clojure: jar: 1.7.0: bereitgestellt [info] | +- com.lmax: disruptor: jar: 3.3.2: bereitgestellt [info] | +- org.apache.logging.log4j: log4j-api: jar: 2.1: bereitgestellt [info] | +- org.apache.logging.log4j: log4j-core: jar: 2.1: bereitgestellt [info] | +-org.apache.logging.log4j: log4j-slf4j-impl: jar: 2.1: bereitgestellt [info] | +-org.slf4j: log4j-over-slf4j: jar: 1.6.6: bereitgestellt [info] | +- javax.servlet: servlet-api: jar: 2.5: bereitgestellt [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: kompilieren [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: Kompilieren Sie [info] | +- org.aspespectj: Aspektjrt: jar: 1.7.4: kompilieren [info] | +- org.aspespectj: Aspektjweaver: Jar: 1.7.4: Laufzeit [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: kompilieren [info] | +- org.apache.commons: commons-compress: jar: 1.6: kompilieren [info] | +- org.apache.commons: commons-compress: jar: 1.6: kompilieren [info] | | /- org.tukaani: xz: jar: 1.4: kompilieren
Wenn Sie die entsprechenden Abhängigkeiten des widersprüchlichen Pakets finden, konfigurieren Sie den Ausschluss in der <Depopenty> von pom.xml, das Paket wird beispielsweise nicht eingeführt:
<Depopentcy> <gruppe> com.aaa.khala </gruppeId> <artifactId> aaa-khala-insight-sdk-transfer-api </artifactID> <version> 1.0.0-Snapshot </Version> <cluden> <cupips> <gruppe> org. <artifactId> SLF4J-log4j12 </artifactid> </exklusion> </exklusions> </abhängig>
Danke fürs Lesen, ich hoffe, es kann Ihnen helfen. Vielen Dank für Ihre Unterstützung für diese Seite!