سؤال

لنفترض أنك تعمل على مشروع كبير، يتم تشغيله على أحد خوادم التطبيقات (على سبيل المثال، Tomcat، ولكنه قد يكون أيضًا Jboss، أو Jetty، أو أي شيء آخر).يتكون المشروع من عدة حروب، حيث تحتوي كل حرب على الكثير من الجرة.تم إنشاء كل شيء باستخدام Maven ويستغرق بناء كل شيء الكثير من الوقت.

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

ومع ذلك، يمكن أن يكون الأمر أفضل بكثير، إذا أمكن إجراؤه تلقائيًا باستخدام maven.لنفترض أنه عند تشغيل "mvn install"، سينتقل البرنامج الإضافي أيضًا إلى موقع محدد مسبقًا (على سبيل المثال.${tomcat}/webapps) وابحث عن جميع مظاهر myjar.jar واستبدلها بإصدار جديد (لدينا العديد من الجرار، هل تتذكر؟)

هل يعرف أحد عن مثل هذا البرنامج المساعد؟أو ربما يتعلق الأمر بأداة أخرى يمكنها القيام بنفس المهمة؟أو فكرة أفضل عن كيفية القيام بذلك؟

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

محدث: لذلك قمت بإنشاء البرنامج المساعد بنفسي.يرى http://code.google.com/p/replace-file-plugin/ هو موضع تقدير أي ردود فعل.

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

المحلول 2

حسنًا، أي ميزات طلبتها في هذا السؤال، قمت بتنفيذها بنفسي.يرى http://code.google.com/p/replace-file-plugin/سأقدر أي ردود فعل.

نصائح أخرى

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

يا رجل على محمل الجد، فإنه الصخور.إقرأ عنها، يمكنها أن تفعل ما تريد.

إذا كان بإمكانك كتابة البرنامج النصي الخاص بك كبناء Ant، ​​فيمكنك استخدام البرنامج المساعد مافن أنترون لتضمين تصميم Ant في دورة حياة البناء لديك.

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

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

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