Saltar al contenido

Plugin de Gradle

Compile Java en una compilación de Gradle existente con elide javac: los plugins de configuración y de proyecto dev.elide, la selección del entorno de ejecución, compiladores persistentes, tareas de formato y exportación de dependencias.

En esta página

Los plugins dev.elide.settings y dev.elide hacen que las tareas JavaCompile de Gradle ejecuten elide javac, y añaden tareas de formato y de exportación de dependencias. Gradle conserva la resolución de dependencias, las pruebas y el empaquetado.

Requisitos

Versión
Gradle7.6.4 o posterior
JDK que ejecuta Gradle17 o posterior
Plugins1.2.0, desde Maven Central
Elide1.6

Instalar

settings.gradle.kts añade Maven Central a los repositorios de plugins y selecciona el entorno de ejecución de Elide para toda la compilación:

import dev.elide.gradle.ElideRuntimeMode

pluginManagement {
    repositories {
        mavenCentral()
        gradlePluginPortal()
    }
}

plugins {
    id("dev.elide.settings") version "1.2.0"
}

elide {
    runtime {
        mode = ElideRuntimeMode.MANAGED
        version = "1.6.0"
    }
}

Cada proyecto que deba compilar con Elide aplica dev.elide, sin versión:

// build.gradle.kts
plugins {
    id("dev.elide")
    java
}

elide {
    compiler = true
}

En Gradle 7.6, configure la extensión de configuración con configure<dev.elide.gradle.ElideSettingsExtension> { runtime { … } }.

Selección del entorno de ejecución

modeUsa
AUTO (predeterminado)runtime.executable si está definido; si no, elide en PATH si su versión es al menos version; si no, el entorno de ejecución gestionado
PATHelide en PATH; falla si es anterior a version
MANAGEDDescarga version una vez en <GRADLE_USER_HOME>/caches/dev.elide/runtimes/, verifica su SHA-256 y la reutiliza sin conexión
elide {
    runtime {
        mode = ElideRuntimeMode.PATH
        executable = layout.projectDirectory.file("tools/elide")
    }
}

Las descargas gestionadas cubren Linux x86_64 y arm64, macOS arm64 y Windows x86_64. Aplicar el plugin no descarga ni ejecuta nada; el entorno de ejecución se prepara cuando una tarea lo necesita.

Configuración

Bloque elide { } del proyecto:

PropiedadValor predeterminadoEfecto
compilertrueCompila las tareas JavaCompile con elide javac
persistentCompilerfalseMantiene hasta cuatro workers de elide javac en caliente durante el resto de la compilación
dependencyModeLEGACYGRADLE: Gradle se encarga de la resolución; install debe seguir desactivado
installfalseEjecuta elide install desde elide.pkl antes de compilar
maventrueCon install, añade .dev/dependencies/m2 como repositorio de Maven
manifestelide.pklManifiesto que lee install

Las propiedades de Gradle sustituyen al bloque durante una ejecución, en ambos sentidos:

PropiedadEfecto
elide.builder.javac.enable=falseCompila con el javac estándar
elide.builder.maven.install.enable=trueFuerza la activación de elide install
./gradlew build -Pelide.builder.javac.enable=false

Tareas

TareaQué hace
prepareElideRuntimeDescarga y verifica el entorno de ejecución gestionado
elideInstallEjecuta elide install; se omite salvo con install = true
elideCheckFormatFalla cuando hay archivos .java, .kt o .kts en src/ que necesitan formato; no cambia nada
elideFormatLes da formato in situ
elideExportDependenciesEscribe las coordenadas resueltas y el SHA-256 de cada conjunto de fuentes en build/elide/dependencies/

compileJava y compileTestJava conservan sus tipos de tarea, así que la compilación incremental y la caché de compilación funcionan como siempre.

Ejemplo

settings.gradle.kts
build.gradle.kts
src/main/java/com/example/HelloWorld.java
src/test/java/com/example/HelloWorldTest.java
// build.gradle.kts
plugins {
    id("dev.elide")
    java
    application
}

application {
    mainClass = "com.example.HelloWorld"
}

repositories {
    mavenCentral()
}

elide {
    compiler = true
}

dependencies {
    implementation("com.google.guava:guava:33.4.8-jre")
    testImplementation("org.junit.jupiter:junit-jupiter:5.13.4")
    testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}

tasks.test {
    useJUnitPlatform()
}

Con el settings.gradle.kts de Instalar:

./gradlew clean build run
> Task :prepareElideRuntime UP-TO-DATE
> Task :elideInstall SKIPPED
> Task :clean
> Task :compileJava
> Task :jar
> Task :run
Hello, World!
> Task :compileTestJava
> Task :test
> Task :build
BUILD SUCCESSFUL in 5s
Configuration cache entry stored.

La primera ejecución descarga Elide en prepareElideRuntime; las siguientes lo reutilizan.

OpenRewrite y consultas de dependencias

Para proyectos con un elide.pkl, consulte OpenRewrite e Índice de código de dependencias. El plugin de Gradle no añade tareas de reescritura ni de índice de código; elideExportDependencies exporta coordenadas y sumas de verificación, pero su salida no es una entrada de elide index. Consulte el alcance de la configuración del proyecto antes de usar estos comandos junto a Gradle.

Límites

  • Solo la compilación de Java pasa por Elide. Kotlin (compileKotlin) usa el compilador del plugin de Gradle para Kotlin.
  • persistentCompiler no admite forkOptions.jvmArgs.
  • MANAGED no está disponible en macOS con Intel; use PATH allí.
  • elideFormat solo cubre las fuentes en src/.

¿Te resultó útil esta página?