إضافة Elide لـ Gradle
يمكنك استخدام Elide كأداة بناء وتبعيات داخل Gradle عبر إضافة.
يبني Elide أداة javac كصورة أصلية ويُضمِّنها داخل ملف Elide الثنائي. تُغيِّر هذه الإضافة بناء Gradle الخاص بك لاستخدام مرافق سلسلة أدوات Elide بدلاً من المرافق المدمجة في Gradle.
بالإضافة إلى ذلك، يمكن تكوين الإضافة ليقوم Elide بحل التبعيات وتحميلها.
يمكن أن تكون النتيجة تحسيناً كبيراً في الأداء لجلب التبعيات وترجمة الشيفرة.
قبل أن تبدأ
ستحتاج إلى نسخة مثبتة من Elide. اتبع دليل التثبيت للحصول على نسخة من Elide.
التثبيت
1. أنشئ وسيط javac في مجلد JAVA_HOME الخاص بك:
$JAVA_HOME/bin/elide-javac
#!/usr/bin/env bash
exec elide javac -- "${@}"2. اجعل الوسيط قابلاً للتنفيذ:
chmod +x $JAVA_HOME/bin/elide-javac3. قم بإعداد الإضافة في مشروع Gradle الخاص بك:
gradle.properties
elidePluginVersion=latestsettings.gradle.kts
// Use `latest` for the latest version, or any other tag, branch, or commit SHA on this project.
val elidePluginVersion: String by settings
apply(from = "https://gradle.elide.dev/$elidePluginVersion/elide.gradle.kts")build.gradle.kts
plugins {
// The `elideRuntime` catalog is added for you. Add the plugin like this:
alias(elideRuntime.plugins.elide)
}
// Settings here apply on a per-project basis. See below for available settings; all properties
// are optional, and you don't need to include this block at all if you are fine with defaults.
elide {
// Use Elide's Maven resolver and downloader instead of Gradle's. Defaults to `true` when an
// `elide.pkl` file is present in the project root.
enableInstall = true
// Use Elide to compile Java instead of the stock Compiler API facilities used by Gradle.
// Defaults to `true` if the plugin is active in the project at all.
enableJavaCompiler = true
// Enable Elide project awareness for Gradle. For example, build scripts can show up as runnable
// exec tasks within the Gradle build.
enableProjectIntegration = true
// Set the path to the project manifest, expressed in Pkl format. Elide project manifests can
// specify dependencies, build scripts, and other project metadata. Defaults to `elide.pkl` and
// automatically finds any present `elide.pkl` in the active project.
manifest = layout.projectDirectory.file("elide.pkl")
}الاستخدام
الترجمة باستخدام Elide + Gradle
يعمل Elide كبديل مباشر كامل لـ javac و kotlinc.
لتفعيل ترجمة Elide، اضبط enableJavaCompiler = true في build.gradle.kts.
يتم تكوين مهام JavaCompile في Gradle لاستخدام Elide من خلال isFork = true و forkOptions.executable. تشير هذه إلى وسيط في مجلد JAVA_HOME يستدعي elide javac -- ... بدلاً من javac ....
نتيجة لذلك، يتم تخطي إحماء JIT بالكامل عند ترجمة Java، مما يسمح بأداء أفضل للمترجم مقارنة بـ javac القياسي.
استخدام Elide لحل التبعيات
يحل Elide ويجلب تبعيات Maven بدلالات مطابقة لمحلل Maven نفسه، ولكن مع خطوة حل محسّنة من خلال استخدام ملف قفل مُسجَّل.
لتفعيل حل تبعيات Elide، اضبط enableInstall = true في build.gradle.kts.
عند التفعيل للاستخدام مع Gradle، يتم إجراء عدة تغييرات على بنائك:
- يتم إضافة استدعاء
elide install أثناء مرحلة التكوين. - يتم تكوين Gradle لمستودع Maven محلي في
.dev/dependencies/m2، وهو المكان الذي يضع فيه Elide ملفات JAR المحلولة. - وبالتالي، عندما يحل Gradle التبعيات، تكون موجودة بالفعل على القرص وجاهزة للاستخدام في مسار الفئات.
- في هذا الوضع، يتم تنزيل التبعيات مرة واحدة ويمكن استخدامها بعد ذلك مع كل من Elide و Gradle.
elide.pkl يسرد تبعيات Maven الخاصة بك. سيتغير هذا في المستقبل.