Déclarez les dépendances dans elide.pkl et installez-les avec elide install.
| Écosystème | Activé par | Lu depuis |
|---|---|---|
| Maven | par défaut | elide.pkl, ou un projet pom.xml sélectionné avec -p |
| npm | --ecosystems=npm | elide.pkl et package.json |
| PyPI | — | dependencies.pypi est accepté ; elide install ne l’installe pas |
Installer les dépendances
elide install # Maven
elide install --ecosystems=npm # npm
elide install --ecosystems=maven,npm # both
elide install --workspace # every ecosystem the project declaresUn package.json n’active pas npm ; nommez chaque écosystème dont la CI a besoin. Un écosystème inconnu ou
indisponible est une erreur d’utilisation.
Déclarer des dépendances
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" } }
}
}Pour un projet qui n’a qu’un pom.xml, lancez elide install -p . ; voir Dépendances Maven.
Groupes Maven
Une entrée est group:artifact:version[:classifier], un MavenPackageSpec, le chemin d’un JAR local ou une référence
project("name"). Les membres d’un espace de travail peuvent omettre la version et prendre celle de la racine
(Espaces de travail). Les conflits se résolvent au plus proche, comme dans Maven.
| Groupe | S’applique à |
|---|---|
packages | Classpaths de compilation et d’exécution des source sets de production. |
devPackages | Phase de développement uniquement. |
modules | --module-path pour les compilations, les exécutions, les tests et les images natives. |
compileOnly | Classpath de compilation uniquement. |
runtimeOnly | Classpath d’exécution uniquement. |
processors | Chemin des processeurs d’annotations ; voir Dépendances Maven. |
testPackages | Source sets de test, en plus des dépendances de leur source set de production. |
kotlinPlugins | Plugins du compilateur Kotlin ; voir Compilateur Kotlin. |
exclusions | Retirées de la résolution et de tous les classpaths. |
substitutions | Fichiers locaux qui remplacent une coordonnée dans tous les classpaths ; voir la référence. |
Starters Spring Boot :
dependencies {
spring {
version = "4.0.0"
starter { "web"; "actuator" }
testStarter { "test" }
}
}Chaque nom devient org.springframework.boot:spring-boot-starter-<name>:<version> dans packages ou testPackages.
Les autres artefacts Spring (spring-boot-devtools, org.springframework:*) vont dans maven ; les deux sont
fusionnés.
Dépôts
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"
}
}| Propriété | Signification |
|---|---|
repositories[name].url | URL du dépôt. |
repositories[name]., .password | Authentification basique. |
repositories[name]., .ntlmWorkstation | L’une ou l’autre sélectionne NTLM. |
repositories[name].name, .description | Nom affiché et description. |
enableDefaultRepositories | Inclure Maven Central (true par défaut). |
localRepository | Dépôt Maven local dans lequel résoudre. |
- Un
http://non chiffré vers toute adresse hors de127.0.0.0/8échoue avecMaven repository 'name' uses plain HTTP.elide build deps --allow-http-repositoriesl’accepte. read("env:…")nécessite--allow-env; voir Options de build.- Avec
enableDefaultRepositories, les artefacts Maven viennent d’abord du proxymaven.pkg.st, puis de Maven Central.elide build deps --use-pkgst=false(ou--no-use-pkgst) n’utilise que Maven Central ; les options globales--pkgstet--no-pkgstn’y changent rien.
Options Maven
| Option | Effet |
|---|---|
--slim | Ignore les sources et la Javadoc. |
--with=sources | Récupère aussi les sources ; javadoc et docs fonctionnent également. Les valeurs inconnues sortent avec le code 2. |
--direct | Copie les artefacts dans le projet au lieu de créer des liens. |
--fresh | Télécharge à nouveau toutes les dépendances et rafraîchit le cache global. |
elide build deps effectue la même résolution sous forme de tâche et accepte aussi --offline,
--allow-http-repositories et --use-pkgst.
Fichiers installés
| Chemin | Contenu |
|---|---|
. | Paquets npm ; node_modules à la racine du projet pointe ici. |
aube-lock.yaml | Fichier de verrouillage npm. |
.dev/dependencies/m2 | Liens vers le cache Maven standard. |
. | Classpaths résolus ; voir elide classpath. |
Dans un espace de travail, les liens sont dans le .dev/dependencies/ de la racine ; les fichiers de classpath restent
propres à chaque projet. Il n’existe pas de fichier de verrouillage commun à tous les écosystèmes ; voir
État du build.
Interroger le code des dépendances
L’index du code des dépendances, expérimental, enregistre les types, les membres et les
références des JAR Maven résolus. Construisez-le avec elide index build --layers=l1,l2,l3, puis utilisez resolve
pour savoir quel artefact définit une classe, get pour inspecter un type ou un membre, et references pour suivre
ses références dans le code. used-by trouve les sources locales compilées correspondantes.
OpenRewrite utilise le même index pour les transformations de code source Java. Ajoutez les
modules de recettes à devPackages ; ce sont des outils de développement, distincts des dépendances de l’application.
Bibliothèques JVM implicites
- Les racines purement Java ne reçoivent ni bibliothèques Kotlin implicites, ni runtime Metro, ni API d’annotations
Elide, même avec un bloc
kotlin. - Les racines Kotlin reçoivent les bibliothèques qu’activent leurs
kotlin.features. - Les racines Kotlin reçoivent aussi le runtime atomicfu, sauf si
kotlin.features.atomicfu = false. - Les source sets de test reçoivent le JUnit fourni, sauf si
jvm.features.testing = false;elide testa alors besoin de votre proprejunit-platform-consolepour les tests JVM. dev.elide:elide-apietelide-insightacceptentlatestcomme version et se résolvent vers l’artefact fourni.
La liste complète, avec les versions : API JVM. Pour utiliser les Annotations Elide depuis Java :
dependencies {
maven {
compileOnly { "dev.elide:elide-api:1.0.0" }
}
}Spécificités npm : Installateur npm.