"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن استخدام البرنامج المساعد Maven Shade لإنشاء Uber Jars والتغلب على تعارضات التبعية من خلال نقل الحزمة؟

كيف يمكن استخدام البرنامج المساعد Maven Shade لإنشاء Uber Jars والتغلب على تعارضات التبعية من خلال نقل الحزمة؟

تم النشر بتاريخ 2024-11-09
تصفح:391

How can the Maven Shade Plugin be used to create Uber Jars and overcome dependency conflicts through package relocation?

البرنامج الإضافي Maven Shade: إنشاء Uber Jars وإعادة تسمية الحزم

يعد Maven Shade Plugin أداة قوية تسمح للمطورين بدمج العناصر، بما في ذلك تبعياتهم، في برنامج واحد ، "جرة uber" الشاملة. يمكن أن يؤدي هذا إلى تبسيط عمليات النشر والتوزيع إلى حد كبير.

فهم Uber Jars

في نظام Maven البيئي، تحتوي كل قطعة أثرية عادةً على فئاتها ومواردها الخاصة فقط. عند إنشاء مشروع، يحدد Maven جميع التبعيات الضرورية (JARs، وما إلى ذلك) بناءً على إدارة التبعيات المحددة.

في المقابل، يقوم uber jar بدمج جميع التبعيات في JAR واحد ضخم. يعمل هذا على تبسيط التنفيذ، حيث لا يلزم سوى ملف JAR واحد كبير لتشغيل التطبيق بدلاً من العديد من التطبيقات الأصغر حجمًا.

لماذا يتم إنشاء Uber Jars؟

توفر جرارات Uber العديد من المزايا:

  • التنفيذ المبسط: تجميع كل شيء في JAR واحد يجعل التنفيذ أسهل وأسهل
  • توزيع أسهل: بالنسبة للتوزيع اليدوي أو النشر، غالبًا ما يكون وعاء uber أكثر ملاءمة وقابلية للإدارة من القطع الأثرية الصغيرة المتعددة.

النقل (إعادة تسمية) الحزم

بالإضافة إلى إنشاء uber jars، يمكن لـ Maven Shade Plugin أيضًا إعادة تسمية الحزم التابعة، المعروف باسم "الترحيل". يمكن لهذه التقنية حل تعارضات التبعية وتحسين النمطية.

مثال السيناريو

فكر في موقف افتراضي حيث:

    تعتمد مكتبة Foo على Bar إصدار المكتبة 1.0.
  • يعتمد مشروع Qux على الإصدار 2.0 من Foo and Bar (يتطلب ميزة جديدة غير متوفرة في 1.0).
يؤدي هذا إلى إنشاء تعارض في التبعية: لا يمكن لـ Qux استخدام Bar 1.0 (تبعية Foo) لأن الكود الخاص به يتطلب ميزات Bar 2.0.

لحل هذه المشكلة، Foo يمكن لمطور المكتبة استخدام Shade Plugin لنقل استخدامه لـ Bar:

إعادة تسمية جميع الفئات في Bar 1.0 إلى حزمة جديدة، على سبيل المثال، com.foo.bar بدلاً من com.bar.
  • قم بتضمين هذا الرمز الشريطي "المنقول" داخل Foo uber jar.
  • وبالقيام بذلك، يمكن لـ Qux استخدام Bar بأمان 2.0 دون التعارض مع تبعيات Foo، حيث أصبح لدى Foo الآن نسختها الخاصة من Bar في حزمة مختلفة.

متى تستخدم Maven Shade Plugin

فكر في استخدام Maven Shade Plugin عندما:

إنشاء مرطبانات uber لتبسيط النشر أو التنفيذ.

    حل تعارضات التبعية عن طريق نقل الحزم .
  • تعزيز النمطية عن طريق إعادة تجميع التبعيات في شكل متسق بناء.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3