انتقل إلى المحتوى

Native Maven

شغّل عمليات بناء Apache Maven 4 باستخدام elide mvn دون تثبيت منفصل لـ Maven أو JDK: نكهات للمشاريع العادية ولمشاريع Spring Boot، والأوضاع، والمخرجات.

في هذه الصفحة

يشغّل elide mvn عمليات بناء Apache Maven 4 دون تثبيت منفصل لـ Maven أو JDK.

تشغيل بناء

elide mvn -- package
elide mvn -- -f app/pom.xml clean install
elide mvn -- --version

كل ما يأتي بعد -- يذهب إلى Maven، باستثناء --flavor و --mode و --yes و --porcelain التي يعالجها elide mvn. وجذر المشروع هو أقرب مجلد .mvn فوق -f/--file أو فوق مجلد العمل.

التشغيل الأول

تُنزَّل كل نكهة مرة واحدة، مع طلب تأكيد عند أول استخدام:

Native Maven component 'generic' is not installed. Download it now? [Y/n]

تُثبَّت الصور في lib/maven/bin/ داخل مجلد Elide الرئيسي. تنزّل الجلسات غير التفاعلية دون سؤال؛ وفي الطرفية يتخطّى --yes طلب التأكيد:

elide mvn -- --yes package
المنصةالمعمارية
Linuxx86_64، aarch64
macOSaarch64
Windowsx86_64

النكهات

النكهة هي مجموعة إضافات Maven التي تعمل تشغيلًا أصليًا.

النكهةالإضافاتلأي مشاريع
genericدورة الحياة الافتراضية: clean و resources و compiler و surefire و jar و install و deployمشاريع Java أو Kotlin العادية
spring@4.1.0كل ما يستخدمه مشروع Boot 4.1 من Spring InitializrSpring Boot 4.1.x
spring@4.0.7الشيء نفسه، لـ Boot 4.0Spring Boot 4.0.x

يختار Elide نكهة spring التي تطابق major.minor لإصدار الأصل spring-boot-starter-parent أو spring-boot-maven-plugin في pom.xml (Boot 4.1.3 → spring@4.1.0). وفي غير ذلك، بما في ذلك العناصر النائبة ${…}، يستخدم generic. لتجاوز هذا الاختيار:

elide mvn -- --flavor spring@4.1.0 package
elide mvn -- --flavor=spring@4.0.7 -f app/pom.xml install

الأوضاع

يحدّد --mode=<value> (أو -Dnmvn.mode=<value>؛ والأولوية للخيار) ما يشغّل الإضافات التي ليست في النكهة:

elide mvn -- --mode=mixed package
الوضعالسلوك
native (الافتراضي)لا تعمل إلا إضافات النكهة. وتؤدي الإضافة المفقودة إلى فشل مبكر يذكر النكهة التي تحويها ويقترح --mode=mixed.
mixedتعمل إضافات النكهة تشغيلًا أصليًا؛ وتعمل الأهداف الأخرى واحدًا تلو الآخر على JVM في العملية نفسها.
legacyيعمل البناء كله بوصفه Apache Maven عاديًا على JVM داخل العملية، كخط أساس للمقارنة.

ينزّل الوضعان mixed و legacy توزيعة Maven إلى lib/maven/ عند أول استخدام. ولا حاجة إلى JDK منفصل.

قيود الوضع المختلط

  • يضيف كل هدف مُفوَّض نحو 0.2 ثانية بعد بدء تشغيل لمرة واحدة. إن فُوِّضت معظم الأهداف، فاختر نكهة تحوي عددًا أكبر من إضافاتها.
  • لا تُلحق مُخرَجات الهدف المُفوَّض بالجلسة. إن لم تكن إضافة jar في النكهة، فشغّل package لا install أو deploy.
  • لا يصل إعداد الإضافات من سطر الأوامر إلى الأهداف المُفوَّضة إلا بوصفه خصائص -D.

المخرجات

تعرض الطرفية سطر حالة (الإضافة، والهدف، والإصدار، والوحدة)، ثم ملخّصًا للمراحل ومدة البناء؛ وعند الفشل يُطبع سجل Maven كاملًا. ويبثّ --porcelain مخرجات Maven نفسها، كما تفعل التشغيلات المفصّلة وتشغيلات تصحيح الأخطاء والتشغيلات غير التفاعلية:

elide mvn -- --porcelain package

فحص صورة مثبّتة

<elide-home>/lib/maven/bin/nmvn-generic --info
<elide-home>/lib/maven/bin/nmvn-spring-4.1.0 --info=plugins

يطبع --info النكهة والطبعة والإضافات؛ ويطبع كلٌّ من --info=plugins و --info=flavor و --info=variant واحدًا منها.

التوافق

يقرأ Native Maven ملف pom.xml نفسه ويتبع دورة الحياة نفسها التي يتبعها Apache Maven 4. وتقتصر تغطية الإضافات على النكهات المنشورة. يجري التصريف داخل العملية؛ والإضافات التي تشغّل المُصرّف في عملية منفصلة تستخدم javac من Elide.

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