แพคเกจความขัดแย้ง
1. เมื่อใช้ Maven เพื่อจัดการโครงการคุณอาจพบกับความขัดแย้งของแพ็คเกจ ตัวอย่างเช่นเมื่อ log4j-over-slf4j.jar และ slf4j-log4j12.jar จะมีปัญหาเมื่อแพ็คเกจทั้งสองทำงานร่วมกันในเวลาเดียวกัน
2. ความขัดแย้งนี้อาจเกิดจากการพึ่งพาอย่างชัดเจนหรือการพึ่งพาโดยนัย
การพึ่งพาอย่างชัดเจนคุณสามารถเห็นการอ้างอิงโดยตรงไปยังแพ็คเกจที่ขัดแย้งกันสองแพ็คเกจจาก <การพึ่งพา> ของไฟล์ pom.xml
การพึ่งพาโดยนัยไม่สามารถเห็นแพ็คเกจที่ขัดแย้งกันใน <การพึ่งพา> ของ pom.xml แต่มีการแนะนำทางอ้อมโดยแพ็คเกจที่แนะนำใน <การพึ่งพา>
แก้ปัญหา
ก่อนอื่นยืนยันว่าการพึ่งพาใดที่มีการแนะนำแพ็คเกจทางอ้อม ใช้การพึ่งพา MVN: ต้นไม้เพื่อดูต้นไม้การพึ่งพาของโครงการทั้งหมดซึ่งคุณสามารถเห็นการพึ่งพาทั้งหมดรวมถึงการพึ่งพาทางอ้อม
ผลลัพธ์คล้ายกับต่อไปนี้:
[ข้อมูล] +- junit: Junit: jar: 4.12: ทดสอบ [ข้อมูล] | /- org.hamcrest: Hamcrest-core: jar: 1.3: ทดสอบ [ข้อมูล] +- org.apache.storm: Storm-core: jar: 1.0.2: ให้ [ข้อมูล] | +- com.esotericsoftware: kryo: jar: 3.0.3: คอมไพล์ [ข้อมูล] | - /- com.esotericsoftware: minlog: jar: 1.3.0: รวบรวม [ข้อมูล] | +- 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: คอมไพล์ [ข้อมูล] +-com.aaa.khala: aaa-khala-insight-sdk-transfer-api: jar: 1.0.0-snapshot: คอมไพล์ [ข้อมูล] | /-com.aaa.khala: aaa-khala-common: jar: 1.0.0-snapshot: รวบรวม [ข้อมูล] | +- javax.mail: javax.mail-api: jar: 1.5.5: รวบรวม [ข้อมูล] | +- CGLIB: CGLIB: JAR: 2.2.2: รวบรวม [ข้อมูล] | +- org.aspectj: AspectJrt: jar: 1.7.4: คอมไพล์ [ข้อมูล] | +- org.aspectj: appectjweaver: jar: 1.7.4: รันไทม์ [ข้อมูล] | +- org.javassist: javassist: jar: 3.20.0-ga: รวบรวม [ข้อมูล] | +- log4j: log4j: jar: 1.2.17: คอมไพล์ [ข้อมูล] | +- org.slf4j: SLF4J-LOG4J12: JAR: 1.7.7: รวบรวม [ข้อมูล] | +- DOM4J: DOM4J: JAR: 1.6.1: Compile [INFO] | +- Jaxen: Jaxen: Jar: 1.1.6: Compile [INFO] | +- org.apache.Commons: Commons-Compress: JAR: 1.6: Compile [INFO] | +- org.apache.Commons: Commons-Compress: JAR: 1.6: Compile [INFO] | - /- org.tukaani: xz: jar: 1.4: คอมไพล์
หากคุณพบการพึ่งพาที่สอดคล้องกันของแพ็คเกจที่ขัดแย้งกันกำหนดค่าการยกเว้นใน <การพึ่งพา> ของ pom.xml แพ็คเกจจะไม่ถูกนำเสนอตัวอย่างเช่น:
<การพึ่งพา> <roupId> com.aaa.khala </groupid> <ratifactid> aaa-khala-insight-sdk-transfer-api </artifactid> <cersion> 1.0.0-snapshot </version> <exclusions> <ArtIfactId> SLF4J-LOG4J12 </ArtIfactId> </การยกเว้น> </การยกเว้น> </การพึ่งพาอาศัย>
ขอบคุณสำหรับการอ่านฉันหวังว่ามันจะช่วยคุณได้ ขอบคุณสำหรับการสนับสนุนเว็บไซต์นี้!