مشاريع ⁦Elide⁩

يستطيع ⁦Elide⁩ إنشاء وإدارة المشاريع الأصلية لـ ⁦Elide⁩ من خلال سلسلة أدوات المشروع.

يتكون مشروع ⁦Elide⁩ من:

  1. بيان المشروع - ⁦elide.pkl⁩ هو بيان قوي قابل للتكوين يعتمد على ⁦Pkl⁩.
  2. مجلد العمل - ⁦.dev⁩ يعمل كمجلد داخلي يستخدمه ⁦Elide⁩ لتخزين المخرجات والحالات الوسيطة لمهام البناء.
  3. ملف القفل - ⁦.dev/elide.build.bin⁩ و ⁦.dev/elide.lock.v2.bin⁩ هما ملفان ثنائيان للقراءة فقط تستخدمهما أدوات ⁦Elide⁩. بشكل عام، لا ينبغي للمستخدمين تعديلهما.

واجهة سطر الأوامر للمشروع

هناك ثلاثة أوامر في واجهة سطر الأوامر يمكن أن تعتمد على مشروع ⁦Elide⁩ للعمل، ويمكنها الوصول إليه بطريقتين:

  1. التمرير المباشر - بتمرير ⁦--project PATH⁩ يمكنك تحديد البيان الذي سيتم تحميله لهذا الأمر.
  2. الاكتشاف التلقائي - إذا لم يتم توفير مسار، سيحاول الأمر العثور على بيان المشروع في المجلد الحالي.

لذلك فإن الاستدعاء البسيط لـ

shell
 elide build

سيحاول البحث عن البيان في المجلد المحلي، بينما

shell
 elide build -p PATH

سيحاول جلب البيان من المسار.

هذه هي الأوامر التي تتطلب مشروعاً.
الأمرالوصف
buildيثبّت التبعيات ويُجمّع المصادر.
installتثبيت التبعيات.
classpathيُنشئ مسار الفئات للمشروع.

بناء مشروع

elide build⁩ هو الطريقة الرئيسية لبناء المشاريع. يُنشئ رسماً بيانياً للمهام بناءً على تكوين البيان.

يمكن عرض القائمة الكاملة للمهام التي يُنشئها أمر ⁦build⁩ من بيان المشروع.

shell
 elide build --inspect

لتشغيل مهمة محددة،

shell
 elide build TASK

على سبيل المثال،

shell
 elide build :compile-java-main

بيان مشروع ⁦Elide⁩

elide.pkl⁩ هو بيان يعتمد على ⁦Pkl⁩ يسمح بتكوين واسع لمشروع ⁦Elide⁩.

يمتلك بيان المشروع بنية منظمة ومرنة في الوقت ذاته.

pkl
# Importing project schema
amends "elide:project.pkl"

# Importing configuration-specific schema
import "elide:Sources.pkl" as Src

# Project metadata
name = "project"
version = "1.0.0"
description = "example project"

# Project configuration
sources {
  ["main"] = new Src.SourceSetSpec {
    paths {
      "src/main/java<<>>*.java"
    }
  }
}

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

تصريحات المستوى الأعلى لتنظيم المشروع وإدارته.
الحقلالنوعالافتراضيالوصف
nameStringفارغاسم المشروع.
versionStringفارغرقم إصدار المشروع.
descriptionStringفارغوصف المشروع.

المصادر

لكي يقوم مشروع ⁦Elide⁩ بالبناء، يجب تحديد المصادر في البيان. القالب العام لتصريح المصادر هو

pkl
import "elide:Sources.pkl" as Src
sources {
  ["main"] = new Src.SourceSetSpec {
    paths {
      "src/main/java<<>>*.java"
    }
  }
}

يتيح لك الاستيراد استخدام مخطط المصادر ويساعد ⁦Elide⁩ على تحليل قسم المصادر في البيان.

تُصرَّح المصادر نفسها بواسطة ⁦paths⁩، وهي قائمة من المسارات المطابقة بالأنماط.

ضمن قسم ⁦sources⁩، تُجمَّع المصادر حسب المجموعات وتُسنَد إلى أنواع مصادر محددة، مثل ⁦["main"]⁩ في هذا المثال. هناك نوعان من المجموعات يتعرف عليهما ⁦Elide⁩ مما ينتج عنه رسوم بيانية بناء مختلفة أثناء ⁦elide build⁩.
النوعالوصف
mainمجموعة المصادر الرئيسية.
testمجموعة مصادر الاختبار.

نقطة الدخول

يتيح تحديد نقطة الدخول لـ ⁦Elide⁩ اكتشاف البرامج النصية للتشغيل تلقائياً.

pkl
entrypoint {
  "some.entry"
}

لذلك إذا لم يُحدَّد برنامج نصي أثناء ⁦elide run⁩، سيحاول ⁦Elide⁩ جلب مسار ملف نقطة الدخول من البيان.

البرامج النصية

البرامج النصية هي أزواج مفتاح-قيمة، مُصمَّمة للعمل بشكل مشابه لبرامج ⁦package.json⁩ الخاصة بـ ⁦Node⁩.

إذا تلقى ⁦elide run⁩ وسيطاً غير خيار يتطابق مع اسم برنامج نصي، يُنفَّذ البرنامج النصي بدلاً من تفسير المعامل كمسار.

على سبيل المثال، إذا حددت في البرنامج النصي

pkl
scripts {
  ["help"] = "elide --help"
}

سينتج ⁦elide run help⁩ مخرجات مشابهة لـ ⁦elide --help⁩.

التبعيات

يأتي ⁦Elide⁩ مع مدير تبعيات مدمج.

يمكن لـ ⁦Elide⁩ أن يعمل كمُثبّت ⁦Maven⁩.

هناك طريقتان لتصريح تبعية ⁦Maven⁩

pkl
import "elide:Jvm.pkl" as Jvm

dependencies {
  maven {
    packages {
      "com.google.guava:guava:33.4.8-jre",
      new Jvm.MavenPackageSpec {
        group = "com.google.guava"
        name = "guava"
        version = "33.4.8-jre"
      }
    }
  }
}

تُثبَّت تبعيات ⁦Maven⁩ في مستودع ⁦Maven⁩ المحلي وتُربَط بمشروعك من خلال ملف ⁦.dev⁩.

يتعرف مدير تبعيات ⁦Maven⁩ في ⁦Elide⁩ على أنواع متعددة من التبعيات التي تخدم أغراضاً مختلفة في ⁦Elide⁩.
النوعالوصف
packagesالتبعيات المستخدمة في مسارات التجميع والتشغيل.
modulesالتبعيات المُضافة إلى مسار الوحدات للتجميع والتشغيل للاستخدام مع وحدات ⁦Java⁩.
testPackagesالتبعيات المُضافة إلى مسارات التجميع والتشغيل لمصادر الاختبار.
compileOnlyالتبعيات المُضافة فقط إلى مسار التجميع.
runtimeOnlyالتبعيات المستخدمة فقط أثناء التشغيل، لكنها غير موجودة أثناء التجميع.
processorsالتبعيات التي تحتوي على معالجات التعليقات التوضيحية.
kotlinPluginsالتبعيات التي تحتوي على إضافات مُجمّع ⁦Kotlin⁩.
exclusionsحزم ⁦Maven⁩ التي يجب استبعادها من الرسم البياني، مثلاً لإصلاح تعارضات الإصدارات يدوياً.
devPackagesتُثبَّت بواسطة ⁦elide install⁩، لكن لا تُضاف في أي مكان آخر، مفيدة إذا كنت تريد أشياء مثل ⁦JUnit⁩ مثبتة للاستخدام كجزء من سير عمل مخصص، دون إضافتها إلى مسار الفئات الفعلي.
repositoriesتكوينات لمستودعات ⁦Maven⁩ البعيدة الإضافية.
يمكن تحديد مستودعات ⁦Maven⁩ التي سيتم سحب الحزم منها.
pkl
import "elide:Jvm.pkl" as Jvm

dependencies {
  maven {
    repositories {
      ["central"] = new Jvm.MavenRepositorySpec {
        name = "Maven Central"
        description = "The central Maven repository"
        url = "https:<<>>
      }
      ["google"] = "https://maven.google.com"
    }
  }
}

أو تحديد مستودع محلي والاتصال بـ ⁦Maven Central⁩

pkl
dependencies {
  maven {
    localRepository = ".m2/repository"
  }
}
القائمة الكاملة للتكوينات
النوعالوصف
coordinatesإحداثيات هذا المشروع كمكتبة، إن كان ذلك مناسباً.
enableDefaultRepositoriesما إذا كان سيتم تفعيل المستودعات الافتراضية مثل ⁦Maven Central⁩. الافتراضي ⁦true⁩.
localRepositoryالمسار إلى مستودع ⁦Maven⁩ المحلي
repositoriesمجموعة من مستودعات ⁦Maven⁩ الإضافية.

⁦JVM⁩

يمتلك ⁦Elide⁩ آلية تسمح بمستوى عالٍ من التكوين لكيفية تفاعل ⁦Elide⁩ مع ⁦JVM⁩.

لبدء تكوين ⁦JVM⁩، يجب استيراد المخطط الخاص بـ ⁦JVM⁩.

pkl
import "elide:Jvm.pkl" as Jvm
jvm {
  # your configuration here
}

على المستوى العالي، يمكنك تحديد أي ⁦JVM⁩ تريد أن يستهدفها ⁦Elide⁩ وتحديد نقطة دخول لـ ⁦JVM⁩.

pkl
jvm {
  main = "test.class"
  target = "latest"
  javaHome = "home"
}
القائمة الكاملة للتكوينات عالية المستوى لـ ⁦JVM⁩.
التكوينالوصف
mainنقطة دخول ⁦JVM⁩.
targetمستوى ⁦JVM⁩ المستهدف.
javaHomeتعيين مسار ⁦Java Home⁩ مخصص.
featuresيتحكم في الميزات والإعدادات المتعلقة بدعم ⁦JVM⁩.
javaإعدادات لغة ⁦Java⁩.
flagsعلامات ⁦JVM⁩ وقت التشغيل.
defsتعريفات وقت التشغيل (خصائص النظام).
features⁩ لديها علامتان تتحكمان في دعم ⁦JVM⁩ لـ ⁦Elide⁩
الميزةالوصف
testingما إذا كان ⁦Elide⁩ يحتاج إلى توفير تبعيات اختبار تلقائياً لمشاريع ⁦JVM⁩. (قيمة منطقية)
automodulesما إذا كانت الوحدات التلقائية مُفعَّلة (معالجة مسار الوحدات لـ ⁦JDK 9+⁩). (قيمة منطقية)
java⁩ يتحكم في الإعدادات المتعلقة بلغة ⁦Java⁩ مثل تكوين المُجمّع.
الميزةالوصف
sourceإصدار المصدر المُستخدَم.
releaseإصدار الإصدار المُستخدَم.
compilerيتحكم في الإعدادات المتعلقة بمُجمّع ⁦Java⁩. يمتلك علامتين، ⁦mode⁩ التي تُستخدَم لتكوين المُجمّع المُستخدَم و ⁦flags⁩ التي تتحكم في العلامات الممررة إلى المُجمّع. تعرّف على المزيد حول مُجمّع ⁦Elide⁩ هنا
flags⁩ هي مجموعة من علامات ضبط ⁦JVM⁩.

⁦Kotlin⁩

يتيح ⁦Elide⁩ تكوين سلوك ⁦Kotlin⁩.

pkl
kotlin {
  # your configuration here
}
القائمة الكاملة للتكوينات عالية المستوى لـ ⁦Kotlin⁩.
التكوينالوصف
apiLevelمستويات ⁦Kotlin API⁩.
languageLevelمستوى لغة ⁦Kotlin⁩ المستهدف.
compilerOptionsيحدد الخيارات المتعلقة بمُجمّع ⁦Kotlin⁩.
featuresيحدد الميزات والخيارات المتعلقة بـ ⁦Kotlin⁩ داخل ⁦Elide⁩.
toolchainيصف سلسلة أدوات ⁦Kotlin⁩ المُستخدَمة للتجميع.
pluginsيصف مجموعة من أزواج مفتاح-قيمة للخيارات المُستخدَمة لتكوين إضافة مُجمّع ⁦Kotlin⁩.
compilerOptions
الخيارالوصف
optInاشتراكات تُضاف إلى استدعاءات مُجمّع ⁦Kotlin⁩.
progressiveModeما إذا كان سيتم تفعيل الوضع التقدمي للمُجمّع.
extraWarningsما إذا كان سيتم تفعيل تحذيرات وفحوصات ⁦K2⁩ الإضافية.
allWarningsAsErrorsالإبلاغ عن خطأ إذا كانت هناك أي تحذيرات.
suppressWarningsعدم إنشاء أي تحذيرات.
verboseتفعيل مخرجات التسجيل المفصلة.
freeCompilerArgsوسائط عشوائية لتمريرها إلى مُجمّع ⁦Kotlin⁩.
apiVersionتعيين إصدار ⁦API⁩ صراحةً لاستدعاءات مُجمّع ⁦Kotlin⁩؛ يُفضَّل عادةً تركه بالقيمة الافتراضية، مما يسمح لـ ⁦Elide⁩ بمحاذاة خيارات إصدار ⁦API⁩.
languageVersionتعيين إصدار اللغة صراحةً لاستدعاءات مُجمّع ⁦Kotlin⁩؛ يُفضَّل عادةً تركه بالقيمة الافتراضية، مما يسمح لـ ⁦Elide⁩ بمحاذاة خيارات إصدار اللغة.
includeRuntimeتضمين فئات وقت تشغيل ⁦Kotlin⁩ داخل المخرج النهائي.
noStdlibعدم تضمين المكتبة القياسية لـ ⁦Kotlin⁩ تلقائياً في مسار الفئات.
javaParametersإنشاء بيانات وصفية لانعكاس ⁦Java 1.8⁩ على معاملات الدوال.
jvmTargetتعيين هدف ⁦JVM⁩ صراحةً؛ يُفضَّل عادةً تركه بالقيمة الافتراضية، مما يسمح لـ ⁦Elide⁩ بمحاذاة خيارات هدف ⁦JVM⁩ مع ⁦Java⁩، حسب الاقتضاء.
noJdkعدم تضمين بيئة تشغيل ⁦Java⁩ تلقائياً في مسار الفئات.
jvmTargetValidationModeالتحقق من توافق هدف ⁦JVM⁩ بين ⁦Kotlin⁩ و ⁦Java⁩.
features
الميزةالوصف
kaptتفعيل أو تعطيل معالجة التعليقات التوضيحية باستخدام ⁦kapt⁩.
testingما إذا كان سيتم تفعيل ميزات دعم الاختبار في ⁦Kotlin⁩.
kotlinxما إذا كان سيتم تفعيل تبعيات ⁦KotlinX⁩ تلقائياً في مسار الفئات.
defaultPluginsما إذا كان سيتم تفعيل مجموعة الإضافات المدمجة الافتراضية لمُجمّع ⁦Kotlin⁩.
serializationتفعيل أو تعطيل دعم تسلسل ⁦KotlinX⁩.
coroutinesتفعيل أو تعطيل دعم ⁦KotlinX Coroutines⁩.
reflectionما إذا كان سيتم تفعيل ميزات الانعكاس في ⁦Kotlin⁩.
toolchain
التكوينالوصف
versionيصف سلسلة أدوات ⁦Kotlin⁩ مُدارة باستخدام إصدار محدد. يتم حل سلاسل الأدوات المُدارة وتنزيلها تلقائياً بواسطة ⁦Elide⁩ عند الحاجة.
pathالمسار إلى توزيعة ⁦Kotlin⁩ محلية.
لتحديد إضافة للتعديل، يجب الوصول إليها كخريطة. تُعيَّن خيارات الإضافة أيضاً كأزواج مفتاح-قيمة.
pkl
plugins {
  ["plugin"] = {
    ["setting"] = "value",
  }
}

⁦JavaScript⁩

يتيح ⁦Elide⁩ تكوين مستوى ⁦ECMA⁩ لـ ⁦JavaScript⁩ في المشروع.

pkl
javascript {
  ecma = "latest"
}

⁦Native Image⁩

يتيح ⁦Elide⁩ تكوين المُجمّع الأصلي على مستوى المشروع.

لبدء تكوين المُجمّع الأصلي، يجب استيراد مخطط محدد.

pkl
import "elide:NativeImage.pkl" as NativeImage

nativeImage {
  # your configuration here
}
القائمة الكاملة للتكوينات عالية المستوى للمُجمّع الأصلي.
التكوينالوصف
verboseما إذا كان سيتم تفعيل المخرجات المفصلة.
linkAtBuildTimeخيارات الربط وقت البناء.
classInitخيارات تهيئة الفئات.
exclusionsالاستبعادات المُطبَّقة على حسابات مسار الفئات ومسار الوحدات.
optimizationمستوى التحسين لـ ⁦Native Image⁩ (⁦"auto"⁩ أو ⁦"b"⁩ أو ⁦"s"⁩ أو ⁦1 - 4⁩).
pgoإعدادات ⁦PGO⁩ (التحسين الموجَّه بالتنميط).
driverModeما إذا كان سيتم استدعاء ⁦Native Image⁩ داخلياً (⁦"embedded"⁩)، أو كعملية فرعية (⁦"external"⁩).
flagsعلامات إضافية لتمريرها إلى مُجمّع ⁦Native Image⁩؛ تُضاف إلى جميع أهداف المشروع.
cflagsعلامات إضافية لتمريرها إلى مُجمّع ⁦C⁩ الأصلي؛ تُضاف إلى جميع أهداف المشروع.
ldflagsعلامات إضافية لتمريرها إلى الرابط الأصلي؛ تُضاف إلى جميع أهداف المشروع.
defsتعريفات خصائص النظام لتمريرها أثناء بناء ⁦Native Image⁩.
featuresميزات المُجمّع المُفعَّلة.
linkAtBuildTime
الخيارالوصف
enabledما إذا كان الربط وقت البناء مُفعَّلاً كإعداد افتراضي.
packagesحزم محددة للربط وقت البناء.
classInit
الخيارالوصف
defaultما إذا كانت التهيئة وقت البناء مُفعَّلة كإعداد افتراضي (الافتراضي: ⁦"buildtime"⁩ أو ⁦"runtime"⁩).
buildtimeفئات أو حزم محددة لتهيئتها وقت البناء.
runtimeفئات أو حزم محددة لتهيئتها وقت التشغيل.
exclusions
الخيارالوصف
allاستبعادات من جميع المسارات. (القائمة الافتراضية: ⁦"org.graalvm.compiler:compiler"⁩ و ⁦"org.graalvm.espresso:espresso-svm"⁩ و ⁦"org.graalvm.nativeimage:native-image-base"⁩ و ⁦"org.graalvm.nativeimage:objectfile"⁩ و ⁦"org.graalvm.nativeimage:pointsto"⁩ و ⁦"org.graalvm.nativeimage:svm"⁩)
classpathاستبعادات مسار الفئات المُطبَّقة.
modulepathاستبعادات مسار الوحدات المُطبَّقة.
pgo
الخيارالوصف
enabledما إذا كان ⁦PGO⁩ مُفعَّلاً (يُفعَّل فقط مع وجود ملفات تعريف).
autoprofileما إذا كان سيتم تفعيل ميزات البناء التلقائي لـ ⁦PGO⁩.
instrumentما إذا كان سيتم إجراء التأدية لـ ⁦PGO⁩.
samplingما إذا كان سيتم استخدام أخذ العينات لـ ⁦PGO⁩.
profilesملفات تعريف ⁦PGO⁩ المُطبَّقة.

المحرك

هذا التكوين مسؤول عن تكوين محرك التنفيذ الذي يستخدمه ⁦Elide⁩ عند تشغيل مشروع.

pkl
engine {
  # your configuration here
}
التكوينالوصف
maxContextsيحدد الحد الأقصى لعدد سياقات الضيف المُستخدَمة عند تشغيل التطبيق. يُعيَّن افتراضياً إلى حد مناسب بناءً على المعالجات المتاحة.

التطوير

تكوينات التطوير تسمح لـ ⁦Elide⁩ بالاندماج الكامل في عملية تطوير المشروع.

لبدء تكوين إعدادات التطوير، يجب استيراد مخطط محدد.

pkl
import "elide:Dev.pkl" as Dev

dev {
  # dev configuration here
}
تعريفات ⁦dev⁩ عالية المستوى
التكوينالوصف
sourceتكوين مصدر المشروع.
mcpالإعدادات المُطبَّقة على خوادم ⁦Model Context Protocol⁩ (⁦MCP⁩).
serverإعدادات خادم التطوير للمشروع.
source
التكوينالوصف
platformالمنصة التي تستضيف مصدر هذا المشروع (⁦"git"⁩ أو ⁦"github"⁩ أو ⁦"gitlab"⁩ أو ⁦"bitbucket"⁩ أو أي قيمة).
projectاسم المشروع أو مساره.
subpathالمسار الفرعي لهذا المشروع، حسب الاقتضاء.
mcp
التكوينالوصف
resourcesموارد ⁦MCP⁩ إضافية لاستخدامها في المشروع.
registerElideما إذا كان سيتم تسجيل ⁦Elide⁩ كأداة ⁦MCP⁩.
adviceما إذا كان سيتم تسجيل نصائح المشروع مع ⁦MCP⁩.
لتصريح مورد ⁦MCP⁩، استخدم النمط التالي:
pkl
resources {
      new Dev.McpResource {
        # some resource config
      }
    }
تمتلك موارد ⁦MCP⁩ قائمة تكوينات واسعة.
التكوينالوصف
pathالمسار إلى الملف.
nameاسم المورد.
descriptionوصف المورد.
mimeTypeنوع ⁦MIME⁩ لتعيينه صراحةً؛ يُكتشَف تلقائياً إذا لم يُقدَّم.
server
التكوينالوصف
hostالمضيف للاستماع عليه.
portالمنفذ للاستماع عليه.

سلسلة الأدوات

تتيح إعدادات سلسلة الأدوات تكوين إصدار محرك ⁦Elide⁩ المُستخدَم.

pkl
toolchain {
  engines {
    ["elide"] = ">1.0.0"
  }
}

المخرجات

يمكن لـ ⁦Elide⁩ إنتاج مجموعة متنوعة من المخرجات التي يمكن وضعها في مشروعك. تُصرَّح هذه كأزواج مفتاح-قيمة داخل تكوين ⁦artifact⁩.

pkl
artifacts {
  ["some-artifact"] = {
    # some artifact
  }
}
هناك خمسة أنواع من المخرجات.
النوعالوصف
Jvm.Jarيصف مخرج ⁦JAR⁩.
Jvm.SourceJarيصف مخرج ⁦JAR⁩ للمصادر يُغلّف ملفات المصدر.
Jvm.JavadocJarيصف مخرج ⁦JAR⁩ لـ ⁦Javadoc⁩ يُنشئ ويُغلّف الوثائق.
NativeImage.NativeImageيصف مخرج ⁦Native Image⁩ داخل مشروع ⁦Elide⁩.
Web.StaticSiteيُصرّح عن موقع ويب ثابت كمخرج.
لاستخدام نوع مخرج محدد، يجب استيراد المخطط الأب. على سبيل المثال، لاستخدام ⁦Jvm.Jar⁩،
pkl
import "elide:Jvm.pkl" as Jvm

artifacts {
  ["some-jar"] = new Jvm.Jar {
    # some config here
  }
}
ملاحظة:

عندما تريد استخدام مصدر في مخرج، يجب استخدامه بالاسم المُصرَّح مسبقاً في بيانات المشروع الوصفية. على سبيل المثال، يمكنك استخدام ⁦main⁩ في مصادر المخرج، إذا كان مُصرَّحاً في البيانات الوصفية.

Jvm.Jar
التكوينالوصف
nameاسم ملف ⁦JAR⁩ الناتج.
sourcesمجموعة المصادر المُستخدَمة لبناء هذا ⁦JAR⁩.
resourcesالموارد المُضافة إلى ⁦JAR⁩ (أزواج مفتاح-قيمة من الاسم إلى المسار).
manifestالمفاتيح والقيم المُضمَّنة في بيان ⁦JAR⁩.
manifestFileمسار ملف البيان.
excludesأنماط الاستبعاد.
optionsخيارات ⁦JAR⁩.
option
الخيارالوصف
compressما إذا كان سيتم تطبيق الضغط.
defaultManifestPropertiesما إذا كان سيتم إضافة خصائص البيان الافتراضية.
entrypointنقطة الدخول الرئيسية لـ ⁦JAR⁩، إن كان ذلك مناسباً.

Jvm.SourceJar
التكوينالوصف
sourcesمجموعة المصادر المُستخدَمة لبناء هذا ⁦JAR⁩.
classifierالمُصنِّف لـ ⁦JAR⁩.
excludesأنماط الاستبعاد من ⁦JAR⁩ المصدري.
includesأنماط التضمين في ⁦JAR⁩ المصدري.

Jvm.JavadocJar
التكوينالوصف
sourcesمجموعة المصادر المُستخدَمة لبناء هذا ⁦JAR⁩.

NativeImage.NativeImage
التكوينالوصف
sourcesمجموعة المصادر المُستخدَمة لبناء هذا ⁦JAR⁩.

Web.StaticSite
التكوينالوصف
srcsالمسار إلى المجلد المصدري الجذر للموقع.
domainنطاق الإنتاج المُستخدَم لهذا الموقع.
prefixبادئة الويب حيث يُثبَّت هذا الموقع؛ تُراعى في الروابط والأصول. يجب أن تنتهي بشرطة مائلة.
assetsمسار الويب العام للأصول العامة لهذا الموقع.
stylesheetsأوراق الأنماط المُضافة إلى جميع الصفحات.
scriptsالبرامج النصية المُضافة إلى جميع الصفحات.
hostingمُستضيف الموقع الثابت.

الويب

يصف هذا التكوين الإعدادات المُطبَّقة في بيئات الويب؛ تُكوّن هذه الإعدادات كيفية بناء وتقديم ⁦Elide⁩ لتطبيقات الويب والموارد ذات الصلة مثل الصور وأوراق الأنماط و ⁦JavaScript⁩.
التكوينالوصف
cssالإعدادات المُطبَّقة على معالجة وتقديم ⁦CSS⁩. إذا تم تحديد كل من ⁦browsers⁩ و ⁦css.targets⁩، تُقدَّم مجموعة ⁦CSS⁩ وقت البناء.
browsersدعم المتصفحات لهذا المشروع، ينطبق على جميع الأهداف المبنية.
css
التكوينالوصف
minifyما إذا كان سيتم تفعيل تصغير كود ⁦CSS⁩.
targetsالمنصات المستهدفة (المتصفحات) التي يجب مراعاتها عند عرض/بناء ⁦CSS⁩.
لإنشاء هدف ⁦CSS⁩ جديد، يجب استيراد المخطط الأب.
pkl
import "elide:Web.pkl" as Web

web {
  css {
    targets {
        new Web.CssTarget {
          # some config
        }
    }
  }
}
target
التكوينالوصف
browserاسم نوع المتصفح المستهدف (⁦"chrome"⁩ أو ⁦"firefox"⁩ أو ⁦"safari"⁩ أو ⁦"edge"⁩ أو ⁦"opera"⁩ أو ⁦String⁩).
versionإصدار المتصفح المستهدف.

ملف قفل ⁦Elide⁩

يحتوي ملف قفل ⁦Elide⁩ على معلومات حول بيانات المشروع الوصفية بالإضافة إلى رسم بياني للتبعيات المحلولة. يسمح ببناء أسرع عبر ⁦elide build⁩ حيث سيتم تخطي قائمة التبعيات غير المُعدَّلة واستخدام الرسم البياني المحلول للتبعيات.

لا تُعدّل ملف القفل لأن ذلك قد يؤدي إلى فشل عمليات البناء.