ماذا يعني الجمع بين قواعد الوصول في مسارات فئة Eclipse؟

StackOverflow https://stackoverflow.com/questions/1032084

  •  06-07-2019
  •  | 
  •  

سؤال

لقد ظل هذا الأمر يزعجني لسنوات حتى الآن، واعتقدت أن أحد الأشخاص الطيبين منكم سيعرف - في ملفات .classpath الخاصة بـ Eclipse، ما هي سمة Combineaccessrules لعنصر classpathentry المستخدمة بالفعل؟

أستطيع أن أرى في مربع حوار تكوين Java Build Path أنه يمكن التلاعب به، لكن لا يمكنني التفكير في حالة استخدام جيدة له.إذا تلاعبت بالإعدادات، أو قمت بتعديل ملف .classpath يدويًا، فلا يبدو أن لذلك أي تأثير.

آمل أن يكون شخص آخر قد استخدمها بشكل جيد، ويمكنني سرقة أفكارهم.في الأساس، إنها حكة أحاول خدشها.

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

المحلول

من خلال الاستخدام السليم لقواعد الوصول، يمكنك منع استخدام الفئات والأساليب "الداخلية" و/أو "غير التابعة لواجهة برمجة التطبيقات".عند إضافة فئة أو حزمة كـ مُحرَّم أو محبط يعرض المترجم خطأ أو تحذيرًا عند استخدام تلك الفئة أو الفئة من الحزمة المحددة.للحصول على مقدمة أطول لقواعد الوصول، يجب عليك قراءتها هذه المقالة القصيرة.

لاستخدام قواعد الوصول المدمجة، تخيل الموقف التالي:

  • لديك مشروعان، أ و ب.
  • يوجد في مسار فئة المشروع A ملف jar الذي تم تصديره.يحتوي الجرة على بعض الفئات العامة "واجهة برمجة التطبيقات المستقرة" و"واجهة برمجة التطبيقات غير المستقرة" و"غير واجهة برمجة التطبيقات".
  • يعتمد المشروع ب على المشروع أ.

لا تسمح باستخدام الفئات "غير التابعة لواجهة برمجة التطبيقات" في المشروع "أ" لذا قمت بتعيين بعضها مُحرَّم قواعد الوصول إلى تلك الفئات/الحزم.

في المشروع ب، لا تسمح باستخدام "واجهة برمجة التطبيقات غير المستقرة" أيضًا، ولكنك تريد الحصول على تحذير عند استخدام "واجهة برمجة التطبيقات غير المستقرة".في هذه الحالة في المشروع B، ما عليك سوى تعيين الإعداد الإضافي محبط قواعد الوصول إذا قمت بالتحقق من قم بدمج القواعد مع قواعد الوصول لإدخالات المشروع المصدرة.

نصائح أخرى

قواعد الوصول هي أشياء صغيرة سهلة الاستخدام، ولكنها خطيرة.يقومون باستبعاد ملف مصدر من مترجم المشروع ولكنهم يتركون الملف سليمًا في نظام الملفات.

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

لذلك نستخدم قاعدة الوصول إلى Eclipse لاستبعادها ولا تزعجنا أبدًا أثناء التطوير.هذا يعني أنه لا يمكننا تغيير الكود بسهولة، ولكنه أحد تلك الفئات التي لم يتم التطرق إليها منذ سنوات.

يعد الجمع بين قواعد الوصول، وفقًا لـ JavaDoc، حالة استخدام حقيقية للحافة.لاستخدامه يجب أن يكون لديك:

  • قاعدة وصول في إدخال مصدر مُصدَّر لمشروع واحد
  • رابط لهذا المشروع من المشروع الأصلي
  • الحاجة إلى الجمع بين قواعد الوصول للمشروع الفرعي مع الأصل

لا أستطيع حقًا أن أقول كيف سيكون مفيدًا، ولكن آمل أن يجيب على الأقل على سؤالك "ما هو" :)

وعلى الرغم من أنني لم يسبق استخدامها نفسي، وقليلا من حيز يمكن العثور على هنا .

<اقتباس فقرة>   

وإذا كانت قواعد الوصول إدخالات تصدير المشروع ينبغي أن يقترن مع قواعد وصول هذا الإدخال

وقواعد الوصول سيكون شيء من هذا القبيل بما في ذلك "كوم / الاختبارات / **"

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