كيف يمكنني تنفيذ العديد من المكونات الإضافية Maven في مرحلة واحدة وتعيين أمر التنفيذ الخاص به؟

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

سؤال

أود تفكك مراحل معينة في دورة حياة Maven إلى مراحل فرعية. أرغب في التحكم في تدفق التنفيذ من مرحلة فرعية إلى أخرى ، نوعًا ما مثل تبعيات ANT.

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

هل هذا ممكن؟

شكرًا

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

المحلول

الإضافات المرتبطة بنفس المرحلة يجب ان يكون نفذت بنفس الترتيب كما هي مدرجة في POM. في ظل ظروف معينة (على سبيل المثال ، إذا قمت بربط البرنامج المساعد نفسه بمرحلة مرتين ، مثل المكون الإضافي Antrun) ، فقد لا يحدث هذا ولكن هذا خطأ (انظر MNG-2258 والقضية ذات الصلة MNG-3719).

نصائح أخرى

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

1) جرب حظك وشاهد ما إذا

2) استخدام البرنامج المساعد المستقل - قم بتشغيل الهدف خارج دورة الحياة. شيء مثل: MVN Package org.codehaus.mojo: nsis-maven-plugin: 1.0: compile.

3) افصلها في الوحدة النمطية: اطلب من POM POM يحتوي على وحدتين فرعيتين ، واحد - مشروع الحرب الخاص بك والآخر لمشروع NSIS.

4) استخدم دورة حياة مخصصة عن طريق تغيير النوع ، في حالتك يمكنك استخدام "exe". يتم ذلك باستخدام امتداد مخصص مخصص (دليل استخدام التمديد)

5) استخدم jetspeed-mvn-maven-plugin. لم أستخدمها مطلقًا ولكنها تبدو ذات صلة باحتياجاتك.

أتمنى أن يمنحك هذا أفكارًا جديدة.

رونين

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