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

التبعيات

صرّح بتبعيات Maven و npm و PyPI في elide.pkl، وثبّت حزم Maven و npm باستخدام elide install: المنظومات والخيارات والملفات المثبّتة.

في هذه الصفحة

صرّح بالتبعيات في elide.pkl وثبّتها باستخدام elide install.

المنظومةالتفعيلتُقرأ من
Mavenافتراضيelide.pkl، أو مشروع pom.xml محدد باستخدام -p
npm--ecosystems=npmelide.pkl و package.json
PyPI—يُقبل dependencies.pypi؛ ولا يثبّته elide install

تثبيت التبعيات

elide install                         # Maven
elide install --ecosystems=npm        # npm
elide install --ecosystems=maven,npm  # both
elide install --workspace             # every ecosystem the project declares
0:30 / 0:30

وجود package.json لا يفعّل npm؛ سمِّ كل منظومة يحتاجها CI. والمنظومة غير المعروفة أو غير المتاحة خطأ في الاستخدام.

التصريح بالتبعيات

amends "elide:project.pkl"

dependencies {
  maven {
    packages {
      "com.google.guava:guava:33.4.8-jre"
    }
  }
  npm {
    packages { "react@19.0.0" }
    devPackages { "typescript@5.6.2" }
  }
  pypi {
    packages { "requests>=2" }
    optionalPackages { ["dev"] { "pytest>=8" } }
  }
}

لمشروع لا يحتوي إلا على pom.xml، شغّل elide install -p .؛ راجع تبعيات Maven.

فئات Maven

المُدخل هو group:artifact:version[:classifier]، أو MavenPackageSpec، أو مسار ملف JAR محلي، أو مرجع project("name"). يمكن لأعضاء مساحة العمل حذف الإصدار وأخذ إصدار الجذر (مساحات العمل). تُحلّ التعارضات بحسب الأقرب أولًا، كما في Maven.

الفئةتنطبق على
packagesclasspath التصريف والتشغيل لمجموعات الإنتاج.
devPackagesوقت التطوير فقط.
modules--module-path لعمليات التصريف والتشغيل والاختبارات والصور الأصلية.
compileOnlyclasspath التصريف فقط.
runtimeOnlyclasspath التشغيل فقط.
processorsمسار معالجات التعليقات التوضيحية؛ راجع تبعيات Maven.
testPackagesمجموعات الاختبار، إضافةً إلى تبعيات مجموعة الإنتاج الخاصة بها.
kotlinPluginsإضافات مُصرّف Kotlin؛ راجع مُصرّف Kotlin.
exclusionsتُزال من الحل ومن كل classpath.
substitutionsملفات محلية تستبدل إحداثية في كل classpath؛ راجع المرجع.

حزم Spring Boot المبدئية (starters):

dependencies {
  spring {
    version = "4.0.0"
    starter { "web"; "actuator" }
    testStarter { "test" }
  }
}

يصبح كل اسم org.springframework.boot:spring-boot-starter-<name>:<version> في packages أو testPackages. أما مُخرَجات Spring الأخرى (spring-boot-devtools، org.springframework:*) فتوضع في maven؛ ويُدمج الاثنان.

المستودعات

dependencies {
  maven {
    repositories {
      ["company"] = "https://maven.example.com/releases"
      ["private"] {
        url = "https://packages.example.com/maven"
        credentials {
          username = read("env:MAVEN_USER")
          password = read("env:MAVEN_TOKEN")
        }
      }
    }
    localRepository = ".m2/repository"
  }
}
الخاصيةالمعنى
repositories[name].urlعنوان URL للمستودع.
repositories[name].credentials.username، .passwordالمصادقة الأساسية.
repositories[name].credentials.ntlmDomain، .ntlmWorkstationأيٌّ منهما يختار NTLM.
repositories[name].name، .descriptionالاسم المعروض والوصف.
enableDefaultRepositoriesتضمين Maven Central (افتراضيًا true).
localRepositoryمستودع Maven المحلي الذي يُحلّ إليه.
  • يفشل http:// غير المشفّر إلى أي وجهة خارج 127.0.0.0/8 مع Maven repository 'name' uses plain HTTP. ويقبله elide build deps --allow-http-repositories.
  • يحتاج read("env:…") إلى --allow-env؛ راجع خيارات البناء.
  • مع enableDefaultRepositories، تأتي مُخرَجات Maven أولًا من الخادم الوسيط maven.pkg.st، ثم من Maven Central. يستخدم elide build deps --use-pkgst=false (أو --no-use-pkgst) Maven Central وحده؛ ولا يغيّر الخياران العامّان --pkgst و --no-pkgst ذلك.

خيارات Maven

الخيارالتأثير
--slimتخطّي المصادر و Javadoc.
--with=sourcesجلب المصادر أيضًا؛ ويعمل javadoc و docs كذلك. القيم غير المعروفة تنتهي برمز الخروج 2.
--directنسخ المُخرَجات إلى المشروع بدلًا من ربطها.
--freshتنزيل كل تبعية من جديد، مع تحديث ذاكرة التخزين المؤقت العامة.

يجري elide build deps عملية الحل نفسها كمهمة، ويقبل أيضًا --offline و --allow-http-repositories و --use-pkgst.

الملفات المثبّتة

المسارالمحتوى
.dev/dependencies/npm/node_modulesحزم npm؛ ويشير node_modules في جذر المشروع إلى هنا.
aube-lock.yamlملف القفل لـ npm.
.dev/dependencies/m2روابط إلى ذاكرة Maven المؤقتة القياسية.
.dev/dependencies/m2/{compile,runtime,test,processors}.classpathقيم classpath المحلولة؛ راجع elide classpath.

في مساحة العمل، توجد الروابط في .dev/dependencies/ الخاص بالجذر؛ وتبقى ملفات classpath لكل مشروع على حدة. لا يوجد ملف قفل مشترك بين المنظومات؛ راجع حالة البناء.

الاستعلام عن شيفرة التبعيات

يسجّل فهرس شيفرة التبعيات التجريبي الأنواع والأعضاء والمراجع من ملفات JAR المحلولة من Maven. ابنِه باستخدام elide index build --layers=l1,l2,l3، ثم استخدم resolve لمعرفة المُخرَج الذي يعرّف صنفًا، و get لفحص نوع أو عضو، و references لتتبّع مراجعه في الشيفرة. ويعثر used-by على المصادر المحلية المُصرَّفة المطابقة.

تستخدم أداة OpenRewrite الفهرس نفسه لتحويلات شيفرة Java المصدرية. أضف وحدات الوصفات إلى devPackages؛ فهي أدوات تطوير منفصلة عن تبعيات التطبيق.

مكتبات JVM الضمنية

  • جذور Java وحدها لا تحصل على مكتبات Kotlin ضمنية، ولا على مكتبة تشغيل Metro، ولا على واجهة التعليقات التوضيحية البرمجية في Elide، حتى مع وجود كتلة kotlin.
  • تحصل جذور Kotlin على المكتبات التي تفعّلها kotlin.features الخاصة بها.
  • تحصل جذور Kotlin أيضًا على مكتبة تشغيل atomicfu ما لم يكن kotlin.features.atomicfu = false.
  • تحصل مجموعات الاختبار على JUnit المضمَّن ما لم يكن jvm.features.testing = false؛ وعندئذ يحتاج elide test إلى junit-platform-console الخاص بك لاختبارات JVM.
  • يقبل dev.elide:elide-api و elide-insight القيمة latest إصدارًا، ويُحلّان إلى المُخرَج المضمَّن.

القائمة الكاملة مع الإصدارات: واجهات JVM البرمجية. لاستخدام تعليقات Elide التوضيحية من ⁦Java:⁩

dependencies {
  maven {
    compileOnly { "dev.elide:elide-api:1.0.0" }
  }
}

تفاصيل ⁦npm:⁩ مثبّت npm.

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