سؤال

لقد سئمت حقا من تكافح مع Maven 2 طوال الوقت. لا ينبغي أن تكون أدوات البناء في الطريق. في الآونة الأخيرة كنت أبحث في buildr وخرج. يبدو أن Maven 3 إصلاح بعض النضالات. إذن، ماذا يجب أن أذهب الآن؟ buildr؟ قفص أو انتظر سنة بالنسبة إلى Maven 3؟

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

المحلول

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

تصفح قليلا، وسترى Build & Madle على حد سواء كلاهما مشكلات أيضا (نفسه للنمل وبلدي)، عموما تتجاوز مجموعة واحدة من مشاكل لآخر وحالة العثور على الأقل مؤلمة.

هل هناك أي شيء على وجه الخصوص يزعجك عن مافن أم أنه حكة عامة؟ إذا كانت مشكلة معينة، فإن الأمر يستحق النظر إلى مشاكل Maven 3 على جيرا, ، إذا لم تتم معالجة المشكلة، يمكنك رفعها، وإلا فقد تكون هناك نقطة قليلة في انتظار

نصائح أخرى

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

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

PS: Maven لديه ميزات جيدة، مثل التكوين على الاتفاقية وفكرة استخدام المستودعات (تنفيذ مافن لهذه الفكرة أمر مزعج).

نستخدم MAVEN هنا، لكنني أجد أنه بمجرد الخروج من مشروع بسيط، يبدأ Pom.xml للحصول على المزيد والمزيد من المعقدة. تبدأ في قضاء الكثير من الوقت في ممارسة وقت في هيك لتكوين بوم الخاص بك للقيام بما تريد، وكيفية العمل حول مختلف المشكلات.

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

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

في مشروع آخر لدينا ملفات تعليمات HTML المستندة إلى HTML. يستخدم الأشخاص الذين يكتبون المساعدة في Microsoft Word ثم برنامج لترجمةها إلى HTML. يمكن تغيير حرف واحد عن مئات الملفات.

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

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

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

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

Maven 3.x مضمن بالفعل في المعالم (على الأقل على Netbeans، تحقق هذا الرابط لمزيد من المعلومات). يمكنك اللعب اليوم مع Maven 3.x ببساطة بناء مشروع Maven مع Netbeans.

أخبار لطيفة أخرى هي أن مافن حصلت على دعم أكثر "مؤسسة" مع دمج EJB / WS في مشاريع IDE (مرة أخرى، على الأقل على NetBeans).

لذلك أود التمسك ب Maven 2.x لإنتاج الإنتاج واللعب مع Maven 3.x للتنمية.

كلاهما يعملان تماما بالنسبة لي في مجموعة متنوعة من المشاريع. أنا حاليا باستخدام MAVEN 3 ألفا 7 التي تعمل بشكل جيد للغاية، خاصة بالتزامن مع البرنامج المساعد Eclipse Maven.

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

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

حافظ على صيانتك جيدا ومكتبها في وحدات محددة جيدا وتنقل بين أنظمة البناء تصبح مشكلة بسيطة.

أما الآن، فإن Maven-2 هو خيار جيد للوسائط 2/3 من المشاريع. بالنسبة للبسيطة حقا، فإن النملة لا تزال موافق. بالنسبة إلى المعقدة حقا، يصبح الهجين من Maven-2 وغيرها من الأدوات (مثل Antrun) أمرا لا مفر منه.

لست متأكدا لماذا تواجه مشاكل مع Maven-2.

يختلف عن النمل والمباني في أنها أداة لوصف عملية البناء الخاصة بك، وليس البرمجة النصية. يبني المعقدة، من الصعب بناء تلك مع أجزاء ديناميكية متعددة و / أو التبعيات العابرة لأنها يصعب وصفها.

إعطاء شعرية https://github.com/hackingspirit/lattice. محاولة. أنا المؤلف. هنا هو مغرفة:

في Lattice Build Files مكتوبة في XML، ولكن في لغة بيثون. BEN- EFITS أفضل بكثير من القراءة والبرمجة النصية الضرورية قوية مدعومة من قبل بيثون. لمشاريع متعددة الوحدات النمطية. تستخدم Lattice الفرز الطوبولوجي لتحديد الترتيب الصحيح لبناء كل وحدة. من المخطط أيضا أن Lattice ستحلل التبعية الوحدة النمطية لتحديد كيفية توزز تجميع الوحدة النمطية. الكود المصدر في شعرية هزيل للغاية، وهو حاليا يتكون من حوالي 500 خط من التعليمات البرمجية المصدر بيثون.

أعتقد أن الأشخاص يشكونوا من مافن يجب أن يقضون بعض الوقت الإضافي في التحقيق في الإضافات المتاحة. استجابة للتعليقات المشكاة من أن Maven صارم ويجعل من الصعب استخدام منطق بناء مخصص / توفير سيطرة رائعة على عملية البناء على عملية البناء - أود أن أوصي بالنظر إلى المكون الإضافي للنمل ل Maven (هناك بالفعل عدة أشخاص، ولكن هنا في http://maven.apache.org/plugins/maven-antrun-plugin.). لقد كان لدي نجاح كبير تخصيص Maven يبني معها على مر السنين. في الأساس، يسمح لك بتشغيل أي أمر من النمل كجزء من بناء MAVEN، ويمكنك أن تفعل أي شيء كبير مع النمل؛)

النمل مع اللبلاب يفعل نفس إدارة التبعية (في الواقع، فإنه يستخدم البنية التحتية لإدارة التبعية بأكملها في مافن بما في ذلك مستودعات URL نفسها)، ولكن دون فوضى تكوين بوم.

قد تكون النملة مع اللبلاب وسيلة للتعامل مع مشكلات التبعية للأشخاص الذين لا يريدون استخدام Maven حقا. يحل 90٪ من الأشياء التي من المفترض أن تحلها مافن.

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