إضافة ⁦Elide⁩ لـ ⁦Maven⁩

إضافة ⁦Maven⁩ في مراحل تجريبية. ستتغير خطوات التثبيت قريباً.

يمكنك استخدام ⁦Elide⁩ للبناء داخل ⁦Maven⁩ عبر إضافة.

يبني ⁦Elide⁩ أداة ⁦javac⁩ كصورة أصلية ويُضمِّنها داخل ملف ⁦Elide⁩ الثنائي. تُغيِّر هذه الإضافة بناء ⁦Maven⁩ الخاص بك لاستخدام مرافق سلسلة أدوات ⁦Elide⁩ بدلاً من المرافق المدمجة في ⁦Maven⁩.

يمكن أن تكون النتيجة تحسيناً كبيراً في الأداء لترجمة الشيفرة.

قبل أن تبدأ

ستحتاج إلى نسخة مثبتة من ⁦Elide⁩. اتبع دليل التثبيت للحصول على نسخة من ⁦Elide⁩.

التثبيت

1. انسخ مستودع ⁦git⁩ الخاص بالإضافة:

git clone git@github.com:elide-dev/maven.git elide-maven-plugin

2. أضف الإضافة إلى مستودع ⁦Maven⁩ المحلي الخاص بك:

cd elide-maven-plugin

mvn install -pl plexus-compilers
# or
./mvnw install -pl plexus-compilers

3. لتثبيت إضافة ⁦Kotlin⁩ أيضاً، ضمِّن وحدة ⁦kotlin-plugin⁩:

mvn install -pl plexus-compilers,kotlin-plugin
# or
./mvnw install -pl plexus-compilers,kotlin-plugin

الاستخدام

الترجمة باستخدام ⁦Elide⁩ في مشروع ⁦Java⁩

يعمل ⁦Elide⁩ كبديل مباشر كامل لـ ⁦javac⁩.

لتفعيل ترجمة ⁦Elide⁩ في مشروع ⁦Maven⁩، قم بتكوين ملف ⁦pom.xml⁩ الخاص بك:

pom.xml
xml
<build>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.14.0</version>
            <dependencies>
                <dependency>
                    <groupId>dev.elide</groupId>
                    <artifactId>elide-plexus-compilers</artifactId>
                    <version>1.0.0</version>
                </dependency>
            </dependencies>
            <configuration>
                <compilerId>elide</compilerId>
            </configuration>
        </plugin>
    </plugins>
</build>
نصيحة: نموذج

انظر مشروع ⁦Java⁩ النموذجي كمثال على الاستخدام.

الترجمة باستخدام ⁦Elide⁩ في مشروع ⁦Kotlin⁩

يعمل ⁦Elide⁩ كبديل مباشر كامل لـ ⁦kotlinc⁩.

يتم تكوين إضافة ⁦Elide⁩ لـ ⁦Kotlin⁩ بنفس الطريقة تماماً مثل تكوين إضافة ⁦Kotlin Maven⁩، فقط مع استبدال إحداثيات الإضافة:

pom.xml

xml
<build>
    <sourceDirectory>src/main/kotlin</sourceDirectory>
    <testSourceDirectory>src/test/kotlin</testSourceDirectory>
    <plugins>
        <plugin>
            <groupId>dev.elide</groupId>
            <artifactId>elide-kotlin-maven-plugin</artifactId>
            <version>1.0.0</version>
            <executions>
                <execution>
                    <id>compile</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <goals>
                        <goal>test-compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

<dependencies>
    <dependency>
        <groupId>org.jetbrains.kotlin</groupId>
        <artifactId>kotlin-stdlib</artifactId>
        <version>2.2.0</version>
    </dependency>
</dependencies>
نصيحة: نموذج

انظر مشروع ⁦Kotlin⁩ النموذجي كمثال على الاستخدام.

الترجمة باستخدام ⁦Elide⁩ في مشروع متعدد اللغات

من الممكن استخدام ⁦Elide⁩ كأداة بناء لمشاريع ⁦Kotlin⁩ و ⁦Java⁩ متعددة اللغات. للقيام بذلك، ادمج تكوين ⁦Kotlin⁩ مع ترجمة ⁦Java⁩.

pom.xml

xml
<build>
    <plugins>
        <plugin>
            <groupId>dev.elide</groupId>
            <artifactId>elide-kotlin-maven-plugin</artifactId>
            <version>1.0.0</version>
            <executions>
                <execution>
                    <id>compile</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <sourceDirs>
                            <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
                            <sourceDir>${project.basedir}/src/main/java</sourceDir>
                        </sourceDirs>
                    </configuration>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <goals>
                        <goal>test-compile</goal>
                    </goals>
                    <configuration>
                        <sourceDirs>
                            <sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
                            <sourceDir>${project.basedir}/src/test/java</sourceDir>
                        </sourceDirs>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.14.0</version>
            <dependencies>
                <dependency>
                    <groupId>dev.elide</groupId>
                    <artifactId>elide-plexus-compilers</artifactId>
                    <version>1.0.0</version>
                </dependency>
            </dependencies>
            <configuration>
                <compilerId>elide</compilerId>
            </configuration>
            <executions>
                <execution>
                    <id>default-compile</id>
                    <phase>none</phase>
                </execution>
                <execution>
                    <id>default-testCompile</id>
                    <phase>none</phase>
                </execution>
                <execution>
                    <id>java-compile</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>java-test-compile</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>