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 | |
|---|---|
| Gradle | 7.6.4 o posterior |
| JDK que ejecuta Gradle | 17 o posterior |
| Plugins | 1.2.0, desde Maven Central |
| Elide | 1.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
mode | Usa |
|---|---|
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 |
PATH | elide en PATH; falla si es anterior a version |
MANAGED | Descarga version una vez en <GRADLE_, 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:
| Propiedad | Valor predeterminado | Efecto |
|---|---|---|
compiler | true | Compila las tareas JavaCompile con elide javac |
persistentCompiler | false | Mantiene hasta cuatro workers de elide javac en caliente durante el resto de la compilación |
dependencyMode | LEGACY | GRADLE: Gradle se encarga de la resolución; install debe seguir desactivado |
install | false | Ejecuta elide install desde elide.pkl antes de compilar |
maven | true | Con install, añade .dev/dependencies/m2 como repositorio de Maven |
manifest | elide.pkl | Manifiesto que lee install |
Las propiedades de Gradle sustituyen al bloque durante una ejecución, en ambos sentidos:
| Propiedad | Efecto |
|---|---|
elide. | Compila con el javac estándar |
elide. | Fuerza la activación de elide install |
./gradlew build -Pelide.builder.javac.enable=falseTareas
| Tarea | Qué hace |
|---|---|
prepareElideRuntime | Descarga y verifica el entorno de ejecución gestionado |
elideInstall | Ejecuta elide install; se omite salvo con install = true |
elideCheckFormat | Falla cuando hay archivos .java, .kt o .kts en src/ que necesitan formato; no cambia nada |
elideFormat | Les da formato in situ |
elideExportDependencies | Escribe las coordenadas resueltas y el SHA-256 de cada conjunto de fuentes en build/ |
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. persistentCompilerno admiteforkOptions.jvmArgs.MANAGEDno está disponible en macOS con Intel; usePATHallí.elideFormatsolo cubre las fuentes ensrc/.