سؤال

ألعب مع فكرة إنشاء الجرار Uber لخدماتي، لكنني قلق بشأن تضمين الجرار التي تتبعها تبعيات متضاربة.ما يحدث عندما يعتمد JAR A على SLF4J-1.0 وجرة B على SLF4J-2.0 وهناك تغييرات كبيرة بين 1.0 و 2.0؟عندما تضمنت هذه الجرار كلاهما في reber jar هل يجب أن أكتب مرشحات محددة من قبل مساحة الاسم أو هل يحدث شيء ما أثناء عملية الظل التي تسمى الجرار؟

شكرا للمساعدة

هل كانت مفيدة؟

المحلول

أنت صحيح للقلق.في نهاية المطاف مع التصادمات (يطلق عليه زميل يسمى "جحيم الجحيم مرة أخرى") وأحيانا يمكنك الحصول على فصول من كل من V1 و V2 في نفس الدليل في Jarfile.

يمكنك استبعاد الإصدار الآخر أو النسخة الأخرى بسهولة، ولكن إذا كانت تبعياتك تحتاج إليها كليهما، فتواجه الخيارات التالية:

  • ابحث عن تبعية جديدة لا تحتوي على الصراع
  • ترقية أو تخفيض التبعية الحالية لجلب الإصدارات في الخط
  • ship كملف حرب أو نوع آخر من الملفات التي تعالج هذا أفضل، بما في ذلك Jarfile عادي مع بيان يتضمن Classpath
  • النظر في التمهيد الربيع، والذي يستخدم استراتيجية مختلفة من التظليل: http://docs.spring.io/spring-boot/docs/current-snapshot/Reference/htmlsingle/#executable-jar

كل ما تفعله، تعايش التبعيات المتدرج مفيدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top