Declare las dependencias en elide.pkl e instálelas con elide install.
| Ecosistema | Se activa con | Se lee de |
|---|---|---|
| Maven | predeterminado | elide.pkl, o un proyecto pom.xml seleccionado con -p |
| npm | --ecosystems=npm | elide.pkl y package.json |
| PyPI | — | dependencies.pypi se acepta; elide install no lo instala |
Instalar dependencias
elide install # Maven
elide install --ecosystems=npm # npm
elide install --ecosystems=maven,npm # both
elide install --workspace # every ecosystem the project declaresUn package.json no activa npm; nombre cada ecosistema que necesite CI. Un ecosistema desconocido o no disponible es
un error de uso.
Declarar dependencias
amends "elide:project.pkl"
dependencies {
maven {
packages {
"com.google.guava:guava:33.4.8-jre"
}
}
npm {
packages { "react@19.0.0" }
devPackages { "typescript@5.6.2" }
}
pypi {
packages { "requests>=2" }
optionalPackages { ["dev"] { "pytest>=8" } }
}
}Para un proyecto que solo tiene un pom.xml, ejecute elide install -p .; consulte
Dependencias Maven.
Grupos de Maven
Una entrada es group:artifact:version[:classifier], un MavenPackageSpec, la ruta de un JAR local o una referencia
project("name"). Los miembros de un espacio de trabajo pueden omitir la versión y tomar la de la raíz
(Espacios de trabajo). Los conflictos se resuelven por cercanía, como en Maven.
| Grupo | Se aplica a |
|---|---|
packages | Classpath de compilación y de ejecución de los conjuntos de producción. |
devPackages | Solo en tiempo de desarrollo. |
modules | --module-path para compilaciones, ejecuciones, pruebas e imágenes nativas. |
compileOnly | Solo el classpath de compilación. |
runtimeOnly | Solo el classpath de ejecución. |
processors | Ruta de los procesadores de anotaciones; consulte Dependencias Maven. |
testPackages | Conjuntos de prueba, además de las dependencias de su conjunto de producción. |
kotlinPlugins | Plugins del compilador de Kotlin; consulte Compilador Kotlin. |
exclusions | Se eliminan de la resolución y de todos los classpath. |
substitutions | Archivos locales que reemplazan una coordenada en todos los classpath; consulte la referencia. |
Starters de Spring Boot:
dependencies {
spring {
version = "4.0.0"
starter { "web"; "actuator" }
testStarter { "test" }
}
}Cada nombre se convierte en org.springframework.boot:spring-boot-starter-<name>:<version> en packages o
testPackages. Los demás artefactos de Spring (spring-boot-devtools, org.springframework:*) van en maven; ambos
se combinan.
Repositorios
dependencies {
maven {
repositories {
["company"] = "https://maven.example.com/releases"
["private"] {
url = "https://packages.example.com/maven"
credentials {
username = read("env:MAVEN_USER")
password = read("env:MAVEN_TOKEN")
}
}
}
localRepository = ".m2/repository"
}
}| Propiedad | Significado |
|---|---|
repositories[name].url | URL del repositorio. |
repositories[name]., .password | Autenticación básica. |
repositories[name]., .ntlmWorkstation | Cualquiera de los dos selecciona NTLM. |
repositories[name].name, .description | Nombre visible y descripción. |
enableDefaultRepositories | Incluir Maven Central (predeterminado true). |
localRepository | Repositorio Maven local en el que se resuelve. |
http://sin cifrar hacia cualquier destino fuera de127.0.0.0/8falla conMaven repository 'name' uses plain HTTP.elide build deps --allow-http-repositorieslo acepta.read("env:…")necesita--allow-env; consulte Opciones de compilación.- Con
enableDefaultRepositories, los artefactos de Maven se obtienen primero del proxymaven.pkg.sty luego de Maven Central.elide build deps --use-pkgst=false(o--no-use-pkgst) usa solo Maven Central; las opciones globales--pkgsty--no-pkgstno cambian esto.
Opciones de Maven
| Opción | Efecto |
|---|---|
--slim | Omite las fuentes y el Javadoc. |
--with=sources | Descarga también las fuentes; javadoc y docs también funcionan. Los valores desconocidos salen con 2. |
--direct | Copia los artefactos en el proyecto en lugar de enlazarlos. |
--fresh | Vuelve a descargar todas las dependencias y actualiza la caché global. |
elide build deps ejecuta la misma resolución como tarea y además acepta --offline, --allow-http-repositories
y --use-pkgst.
Archivos instalados
| Ruta | Contenido |
|---|---|
. | Paquetes npm; node_modules en la raíz del proyecto enlaza aquí. |
aube-lock.yaml | Archivo de bloqueo de npm. |
.dev/dependencies/m2 | Enlaces a la caché estándar de Maven. |
. | Classpath resueltos; consulte elide classpath. |
En un espacio de trabajo, los enlaces están en el .dev/dependencies/ de la raíz; los archivos de classpath siguen
siendo de cada proyecto. No hay un archivo de bloqueo común a todos los ecosistemas; consulte
Estado de compilación.
Consultar el código de las dependencias
El índice de código de dependencias experimental registra tipos, miembros y referencias de
los JAR de Maven resueltos. Créelo con elide index build --layers=l1,l2,l3 y luego use resolve para saber qué
artefacto define una clase, get para inspeccionar un tipo o un miembro y references para seguir sus referencias en
el código. used-by encuentra las fuentes locales compiladas que coinciden.
OpenRewrite usa el mismo índice para las transformaciones de código fuente Java. Añada los
módulos de recetas a devPackages; son herramientas de desarrollo, separadas de las dependencias de la aplicación.
Bibliotecas JVM implícitas
- Las raíces que solo tienen Java no reciben bibliotecas implícitas de Kotlin, el runtime de Metro ni la API de
anotaciones de Elide, aunque tengan un bloque
kotlin. - Las raíces Kotlin reciben las bibliotecas que activan sus
kotlin.features. - Las raíces Kotlin reciben también el runtime de atomicfu, salvo que
kotlin.features.atomicfu = false. - Los conjuntos de prueba reciben el JUnit incluido, salvo que
jvm.features.testing = false; en ese caso,elide testnecesita su propiojunit-platform-consolepara las pruebas JVM. dev.elide:elide-apiyelide-insightaceptanlatestcomo versión y se resuelven al artefacto incluido.
La lista completa, con versiones: API de la JVM. Para usar las Anotaciones de Elide desde Java:
dependencies {
maven {
compileOnly { "dev.elide:elide-api:1.0.0" }
}
}Detalles de npm: Instalador npm.