حزمة الصراع
1. عند استخدام Maven لإدارة المشاريع ، يمكنك مواجهة تعارضات الحزمة. على سبيل المثال ، عند log4j-over-slf4j.jar و slf4j-log4j12.jar ، ستكون هناك مشاكل عندما يتم تشغيل الحزمتين معًا في نفس الوقت.
2. قد يكون سبب هذا الصراع تبعيات صريحة أو تبعيات ضمنية.
تبعيات واضحة ، يمكنك رؤية المراجع مباشرة إلى حزمتين متضاربين من <sependency> لملف pom.xml.
التبعيات الضمنية ، لا يمكن رؤية الحزم المتضاربة في <sependency> من pom.xml ، ولكن يتم تقديمها بشكل غير مباشر من قبل الحزم التي تم تقديمها في <sependency>.
يحل
أولا تأكيد التبعيات التي قدمت بشكل غير مباشر الحزمة. استخدم MVN التبعية: شجرة لعرض شجرة التبعية للمشروع بأكمله ، حيث يمكنك رؤية جميع التبعيات ، بما في ذلك التبعيات غير المباشرة.
النتائج مماثلة لما يلي:
[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: support [info] | +- com.esotericsoftware: Kryo: Jar: 3.0.3: compile [info] | | /- com.esotericsoftware: minlog: جرة: 1.3.0: ترجمة [info] | +- org.clojure: clojure: jar: 1.7.0: المقدمة [info] | +- com.lmax: disruptor: jar: 3.3.2: المقدمة [info] | +- org.apache.logging.log4j: log4j-api: jar: 2.1: المقدمة [info] | +- org.apache.logging.log4j: log4j-core: jar: 2.1: المقدمة [info] | +-org.apache.logging.log4j: log4j-slf4j-impl: jar: 2.1: المقدمة [info] | +-org.slf4j: log4j-over-slf4j: jar: 1.6.6: المقدمة [info] | +- javax.servlet: servlet-api: jar: 2.5: المقدمة [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: جرة: 2.2.2: ترجمة [info] | +- org.aspectj: SideJrt: JAR: 1.7.4: ترجمة [info] | +- org.aspectj: SideJweaver: JAR: 1.7.4: وقت التشغيل [info] | +- org.javassist: javassist: جرة: 3.20.0-GA: ترجمة [info] | +- log4j: log4j: جرة: 1.2.17: ترجمة [info] | +- org.slf4j: slf4j-log4j12: jar: 1.7.7: compile [info] | +- DOM4J: DOM4J: جرة: 1.6.1: ترجمة [info] | +- Jaxen: Jaxen: جرة: 1.1.6: ترجمة [info] | +- org.apache.commons: commons-compress: jar: 1.6: compile [info] | +- org.apache.commons: commons-compress: jar: 1.6: compile [info] | | /- org.tukaani: XZ: جرة: 1.4: ترجمة
إذا وجدت التبعيات المقابلة للحزمة المتضاربة ، فقم بتكوين الاستبعاد في <sependency> من pom.xml ، فلن يتم تقديم الحزمة ، على سبيل المثال:
<Rependency> <roupeD> com.aaa.khala </rougeid> <StifactId> aaa-khala-insight-sdk-transfer-api </shintifactid> <sored> 1.0.0-snapshot </version> <StifactId> SLF4J-LOG4J12 </stifactid> </section> </arvisions> </reperency>
شكرا لك على القراءة ، آمل أن تساعدك. شكرا لك على دعمك لهذا الموقع!