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

تبعيات Maven

ثبّت تبعيات Maven باستخدام elide install، بما في ذلك المشاريع التي لا تحتوي إلا على pom.xml، واضبط معالجات التعليقات التوضيحية في مشروع Elide.

في هذه الصفحة

يحلّ Elide تبعيات Maven المعرّفة في elide.pkl أو في pom.xml.

elide install

المنظومة الافتراضية هي Maven. الفئات والمستودعات وبيانات الاعتماد وخيارات التثبيت: التبعيات.

مشاريع لا تحتوي إلا على pom.xml

elide install -p .

يقرأ Elide التبعيات المباشرة في POM، وقيم ${property}، والقسم dependencyManagement الخاص به. ولا تُدمج ملفات POM الأم ولا قوائم BOM المستوردة؛ وتُسقَط التبعية التي لا يحدد إصدارها سوى ملف أم.

نطاق POMالفئة
compilepackages
provided, systemcompileOnly
runtimeruntimeOnly
testtestPackages

لتشغيل أهداف Maven، استخدم Native Maven.

فحص شيفرة التبعيات

في مشروع يستخدم elide.pkl، يسجّل فهرس شيفرة التبعيات التجريبي الأنواع والأعضاء والمراجع من ملفات JAR الخاصة بـ Maven بعد حلّها. استخدم elide index resolve لمعرفة المُخرَج الذي يعرّف صنفًا، أو elide index references لفحص ما يستخدمه صنف من تبعية.

تستخدم OpenRewrite هذا الفهرس لتشغيل وصفات Java. عرّف وحدات وصفات إضافية تحت dependencies.maven.devPackages، وعاين التغييرات على المصادر باستخدام --dry-run.

معالجات التعليقات التوضيحية

dependencies {
  maven {
    packages { "org.mapstruct:mapstruct:1.6.3" }
    processors { "org.mapstruct:mapstruct-processor:1.6.3" }
  }
}
  • تعمل المعالجات في elide build و elide javac، على مجموعتَي المصادر الرئيسية والاختبارية.
  • يؤدي تغيّر ملف JAR لمعالج إلى إعادة التصريف.
  • تُكتب المصادر المولّدة في .dev/jvm/generated-sources/<set>/java وتُصرَّف مع مجموعتها.
  • لا ترى المعالجات إلا مصادر Java، ولا ترى تصريحات Kotlin أبدًا. تُصرَّف شيفرة Kotlin قبل معالجة Java، لذا يجب أن تحصل شيفرة Kotlin التي تستخدم أنواعًا مولّدة عليها من مجموعة مصادر أو مشروع يسبقها.
  • لا يُدعم KAPT ولا KSP.
  • يعمل -proc:none و -proc:only و -proc:full كما في javac.

يعرض elide javac --capabilities ما تدعمه نسخة Elide هذه:

{
  "version": 1,
  "javaAnnotationProcessing": true,
  "kotlinSymbolProcessing": false,
  "kotlinCompilerPlugins": false
}
الحقلالمعنى
javaAnnotationProcessingتعمل معالجات التعليقات التوضيحية في Java.
kotlinSymbolProcessingتعمل معالجات KSP.
kotlinCompilerPluginsتعمل إضافات مُصرّف Kotlin من جهات خارجية داخل المُصرّف المدمج. ولا يتأثر بذلك الإضافات المدمجة ولا سلسلة الأدوات المُدارة أو المخصّصة.

اضبط ELIDE_TRACE_PROCESSORS=1 لطباعة كل صنف معالج عند تحميله (Loading processor dependency: demo.HelloProcessor).

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