صرّح بالتبعيات في elide.pkl وثبّتها باستخدام elide install.
| المنظومة | التفعيل | تُقرأ من |
|---|---|---|
| Maven | افتراضي | elide.pkl، أو مشروع pom.xml محدد باستخدام -p |
| npm | --ecosystems=npm | elide.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وجود 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.
| الفئة | تنطبق على |
|---|---|
packages | classpath التصريف والتشغيل لمجموعات الإنتاج. |
devPackages | وقت التطوير فقط. |
modules | --module-path لعمليات التصريف والتشغيل والاختبارات والصور الأصلية. |
compileOnly | classpath التصريف فقط. |
runtimeOnly | classpath التشغيل فقط. |
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].، .password | المصادقة الأساسية. |
repositories[name].، .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.
الملفات المثبّتة
| المسار | المحتوى |
|---|---|
. | حزم npm؛ ويشير node_modules في جذر المشروع إلى هنا. |
aube-lock.yaml | ملف القفل لـ npm. |
.dev/dependencies/m2 | روابط إلى ذاكرة Maven المؤقتة القياسية. |
. | قيم 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.