سؤال

أنا مهتم بالحفاظ على مخضرم 2 مستودع لمنظمتي.ما هي بعض المؤشرات والمزالق التي من شأنها أن تساعد.

ما هي الإرشادات التي يجب على المستخدمين اتباعها عند إعداد معايير التنزيل من أو نشر عناصرهم الخاصة إلى المستودع عند إصدار التعليمات البرمجية الخاصة بهم؟ما هي أنواع الحوكمة/القواعد التي تطبقها لهذا النوع من الأشياء؟ما الذي تقوم بتضمينه في دليل/وثائق المطور الخاص بك؟

تحديث:لقد دعمنا Nexus وكنا سعداء جدًا به - اتبعنا معظم إرشادات Sal ولم نواجه أي مشكلة.بالإضافة إلى ذلك، قمنا بتقييد الوصول إلى النشر والإنشاء/النشر التلقائي لعناصر اللقطة من خلال خادم Hudson CI.يستطيع Hudson تحليل جميع تبعيات المشروع الأولية/النهائية، لذلك إذا تسببت مشكلة في الترجمة أو فشل الاختبار أو أي انتهاك آخر في كسر البناء، فلن يحدث أي نشر.كن مرهقًا من القيام بعمليات نشر اللقطات في Maven2/Maven3، حيث تغيرت البيانات التعريفية بين الإصدارين.وسوف تخفف استراتيجية نشر اللقطة "هدسون فقط" من هذا الأمر.نحن لا نستخدم البرنامج المساعد للإصدار، ولكننا كتبنا بعض السباكة حول إصدارات البرنامج المساعد عند الذهاب لتحريك لقطة للافراج.نحن نستخدم أيضًا m2Eclipse ويبدو أنه يعمل بشكل جيد جدًا مع Nexus، حيث يمكنه رؤية Nexus من ملف الإعدادات ويعرف كيفية فهرسة المعلومات الأثرية للبحث عنها من هناك.(على الرغم من أنني اضطررت إلى تعديل بعض هذه الإعدادات حتى تتم فهرستها الكاملة للقطات الداخلية لدينا.) أوصي أيضًا بنشر جرة مصدر مع القطع الأثرية الخاصة بك كممارسة قياسية إذا كنت مهتمًا بالقيام بذلك.نقوم بتكوين ذلك في POM الفائق.

تحديث2:لقد صادفت ورقة عمل سوناتايب هذه والذي يوضح بالتفصيل مراحل التبني/النضج المختلفة، ولكل منها أهداف استخدام مختلفة لمدير مستودع Maven.

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

المحلول

أوصي بإعداد خادم Nexus واحد يحتوي على أربعة مستودعات على الأقل.لا أوصي بالمصنوعات اليدوية.يعد الإصدار المجاني من nexus مناسبًا تمامًا لفريق التطوير الذي يضم أقل من 20 شخصًا في أقل من ثلاث مجموعات.إذا كان لديك عدد مستخدمين أكثر من ذلك، فاعمل معروفًا لنفسك وادفع مقابل إصدار Sonatype.تكامل LDAP يدفع تكاليفه بنفسه.

  1. الإصدار الداخلي
  2. لقطة داخلية
  3. الطرف الثالث الداخلي للرموز المستخدمة داخليًا والتي تأتي من مصادر خارجية، أو للإصدارات المعتمدة من جهات خارجية.ضع برامج تشغيل JDBC وأشياء javax.* وأشياء من العملاء والشركاء هنا.
  4. الوكلاء الخارجيون الوكيل المشترك لجميع المصادر المعتادة مثل m2 وcodehaus وما إلى ذلك

قم بتكوين Nexus للقيام بما يلي لعمليات إعادة الشراء الداخلية

  1. احذف اللقطات القديمة على فترات منتظمة
  2. حذف اللقطات عند الإصدار
  3. بناء ملفات الفهرس.يؤدي هذا إلى تسريع عمليات الإنشاء المحلية أيضًا

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

توفير وكيل مشترك لعملائك. في Nexus، يمكنك إضافة مجموعة من الوكلاء إلى مصادر Maven الشائعة (Apache وJBoss وCodehaus) والحصول على وكيل واحد مكشوف للعملاء الداخليين.وهذا يجعل إضافة المصادر وإزالتها من عملائك أسهل بكثير.

لا تخلط بين القطع الأثرية الداخلية وأطراف ثالثة في نفس المستودع.يتيح لك Nexus إضافة الجرار إلى مستودع داخلي عبر واجهة المستخدم الرسومية على الويب.أوصي بهذا كطريقة لإضافة برامج تشغيل JDBC الخاصة بك والرموز الخارجية الأخرى إلى جهة خارجية.واجهة المستخدم لطيفة جدًا للاستخدام عند مقارنتها بمعظمها المشاريع والبرامج.

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

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

قم بإنشاء طريقة سهلة للالتزام بتسمية العناصر الداخلية. أفضّل معرف المجموعة لـ القسم.الوظيفة.المشروع وArtifactId لذلك اسم المكون.بالنسبة للمستودعات الداخلية، من المحتمل أن يكون com/org/net واسم الشركة غير ذي صلة.والخطأ إذا غيرت الشركة إسمها.من غير المرجح أن تتم إعادة تسمية قسم المبيعات أو المحاسبة أو المخزون.

نصائح أخرى

بالتأكيد استخدام العلاقة.:ص

لقد استخدمت كلا من Nexus و Artifactory.تعد واجهة Nexus أكثر قوة، وأكثر قابلية للتكوين، وبالطبع تمت كتابتها بواسطة سوناتايب, ، الذي يمثل كل شيء تقريبًا مافن جيدًا.

ومع ذلك، فإن Artifactory لائق وعملي.

استخدم Artifactory .

أنا أستخدم Artifactory بنفسي، وأحب واجهة المستخدم وسهولة النشر/الصيانة.ومع ذلك، لم أستخدم Nexus مطلقًا، ولا يمكنني حقًا مساعدتك في إجراء مقارنة مناسبة للميزات.

فيما يلي بعض الأشياء التي تخطر في بالي والتي تعجبني حقًا في Artifactory (ضع في اعتبارك أن Nexus قد يكون لديه هذه الميزات أيضًا):

  1. واجهة ويب 2.0 جميلة.
  2. القدرة على استيراد مستودع Maven المحلي الخاص بك لمساعدتك على البدء.
  3. سهولة التكامل مع خوادم LDAP الحالية للأمان (أنا معجب كبير بمستودع واحد لتخزين بيانات الاعتماد).

نظرًا لوجود تطبيقين رئيسيين فقط لتطبيق Maven Repository، إذا كنت تريد حقًا التأكد من أنك قمت بالاختيار الصحيح، فإنني أوصي بتجربة كليهما، وتحديد أيهما تفضله بنفسك.

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

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

وشيء آخر للنظر:

http://archiva.apache.org/

كما السؤال الأصلي (المشكلات الفنية التي يجب مراعاتها عند إنشاء مستودع M2)، أوصي بإنشاء مستخدم للقراءة فقط لتصفح المستودع ومستخدم إداري لكل مسؤول (يقال:مستخدم واحد للقراءة فقط لجميع المستخدمين الذين ليسوا مسؤولين).علاوة على ذلك، أوصي بإنشاء صور احتياطية بشكل دوري (ربما مرة واحدة يوميًا؟).مهم جدًا سواء إذا كان مستودعك كبيرًا أو إذا كنت تقوم بتثبيت القطع الأثرية الخاصة بك من وقت لآخر.

أخيرًا وليس آخرًا، عند إضافة مستودعات بعيدة جديدة، يجب عليك إضافة عوامل تصفية التضمين/الاستبعاد حتى يتم إجراء البحث عن العناصر في المستودع بسرعة أكبر.

هناك الكثير من المشكلات الأخرى التي يجب وضعها في الاعتبار، ولكن هذه هي المشكلات الرئيسية التي واجهتها أثناء إدارة مستودع Maven الداخلي.

للعلم، أنا أستخدم كلا من Nexus وArtifactory؛يمكنني أن أذكر بوضوح أنه على الرغم من أن Nexus بسيط جدًا وفعال (على الرغم من أنني أواجه أحيانًا مشكلات في عملية التثبيت على Ubuntu)، إلا أن نسخته المجانية لا يمكن أن تنافس إصدار مجتمع Artifactory (المجاني).باستثناء واجهة المستخدم الرائعة للويب 2 الخاصة بـ Artifactory، فإن ميزاته الرئيسية، مثل إدارة الأمان والنسخ الاحتياطي الدوري ومشكلات إمكانية الوصول، تتجاوز بكثير ميزات Nexus.

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