كيف يمكنني تحديد إدخال Eclipse .classpath لمنصة تشغيل/S معينة؟

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

  •  20-08-2019
  •  | 
  •  

سؤال

أنا أعمل على مشروع SWT كجزء من فريق.نحن نعمل باستمرار على كسر بيئة البناء لبعضنا البعض لأنه يتم فحص ملف Eclipses .classpath في التحكم في الإصدار ونقوم بتضمين مكتبات SWT مختلفة لأجهزتنا.

اعتمادًا على من ارتكب آخر التزام، يمكن أن يكون إدخال .classpath:

<classpathentry kind="lib" path="lib/swt/swt-win32.jar"/>

أو

<classpathentry kind="lib" path="lib/swt/swt-carbon.jar"/>

أو

<classpathentry kind="lib" path="lib/swt/swt-gtk.jar"/>

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

هل لدى أي شخص أي أفكار حول كيفية القيام بذلك؟كانت فكرتي الأولية هي تقسيم هذا إلى ملف ".classpath-swt" الخاص به (الذي تم تجاهله بواسطة VCS)، وإنشاءه تلقائيًا باستخدام Ant وإدراجه في مسار .classpath الرئيسي، ولكن يبدو أن Eclipse لا يدعم تقسيم الملف. ملف .classpath.

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

سيتم تقدير أي اقتراحات كثيرًا، طالما أنها ليست "لا تستخدم Eclipse" لأن هذا ليس خيارًا لهذا المشروع :)

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

المحلول

سيسمح لك Eclipse بتعريف متغيرات classpath حتى تتمكن من الاحتفاظ بـ .classpath كما هو، لكن كل مطور سيقوم بتكوين Eclipse الخاص به وفقًا للنظام الأساسي.يمكنك على الأقل إصدار ملف .classpath.سيتعين عليك تغيير بنية الدليل الخاص بالمكان الذي تخزن فيه مرطبانات SWT الخاصة بك إلى شيء لا يتغير فيه اسم الجرة لكل نظام أساسي.يمكن العثور على هذه القائمة في:"نافذة->التفضيلات->جافا->إنشاء المسار"

SWTJARDIRECTORY/
    WIN32/
        SWT.JAR
    CARBON/
        SWT.JAR
    GTK/
        SWT.JAR

السابق.

    SWT_PLATFORM="SWTJARDIRECTORY/GTK", set by developer in Eclipse

.classpath

    SWT_PLATFORM/SWT.JAR

نصائح أخرى

يجب أن يكون لديك هذه المكتبات في، مشروع التعرف بسهولة منفصل بدلا من وضعها في كل مشروع.

ومنها مثلا. إنشاء مشروع باسم "00-سبحانه وتعالى-مقدم" (لذلك يذهب على رأس) والسماح لها مرجع واحد من "00-سبحانه وتعالى-مزود الكربون"، "00-سبحانه وتعالى-مقدم-Win32 و" أو "00-سبحانه وتعالى-مزود -gtk ".

وأي من هذه تصدير المكتبات المحلية المناسبة لمنصة معين والرابط الوحيد هو في 00-سبحانه وتعالى ومقدم الخدمة. المشروع الفعلي يحيل فقط هذا المشروع ميتا.

ونحن نستخدم البديل من هذا داخليا - أنه يعمل بشكل جيد بالنسبة لنا

.

وماذا عن مجرد تكوين الحالات الخاصة، ولهذا المكون واحدة من بيئتك كنت لا يبقيه في التحكم بالمصادر الخاصة بك؟

وبدلا من ذلك يمكن تخزين ملف CLASSPATH لكل بيئة، ربما في دليل آخر وفي ملف النمل أي البناء الإعداد env.xml الملف الذي يمكن أن يكون ببساطة هدف واحد لكل بيئة نسخ الصحيح عبر. أما بالنسبة لحفظ نسخة من هذه في التحكم بالمصادر عليك أن تكون متأكدا من نسخ مرة أخرى عندما يتم تحديثها.

وسبحانه وتعالى يفعل ذلك ل لا الإصدارات الملف .classpath، ولكن من خلال إصدارات متعددة .classpath_ منفصلة * الملفات مع نظام التشغيل ونظام النافذة إلحاق، على سبيل المثال .classpath_win32_win32. وبالتالي عندما تقوم بسحب مصادر من مستودع يتوقع منك لنسخ ملف CLASSPATH المناسب ل.classpath وإعادة ترجمة المشروع.

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