Aller au contenu

Dépendances

Déclarez des dépendances Maven, npm et PyPI dans elide.pkl et installez les paquets Maven et npm avec elide install : écosystèmes, options et fichiers installés.

Sur cette page

Déclarez les dépendances dans elide.pkl et installez-les avec elide install.

ÉcosystèmeActivé parLu depuis
Mavenpar défautelide.pkl, ou un projet pom.xml sélectionné avec -p
npm--ecosystems=npmelide.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 declares
0:30 / 0:30

Un 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.

GroupeS’applique à
packagesClasspaths de compilation et d’exécution des source sets de production.
devPackagesPhase de développement uniquement.
modules--module-path pour les compilations, les exécutions, les tests et les images natives.
compileOnlyClasspath de compilation uniquement.
runtimeOnlyClasspath d’exécution uniquement.
processorsChemin des processeurs d’annotations ; voir Dépendances Maven.
testPackagesSource sets de test, en plus des dépendances de leur source set de production.
kotlinPluginsPlugins du compilateur Kotlin ; voir Compilateur Kotlin.
exclusionsRetirées de la résolution et de tous les classpaths.
substitutionsFichiers 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].urlURL du dépôt.
repositories[name].credentials.username, .passwordAuthentification basique.
repositories[name].credentials.ntlmDomain, .ntlmWorkstationL’une ou l’autre sélectionne NTLM.
repositories[name].name, .descriptionNom affiché et description.
enableDefaultRepositoriesInclure Maven Central (true par défaut).
localRepositoryDépôt Maven local dans lequel résoudre.
  • Un http:// non chiffré vers toute adresse hors de 127.0.0.0/8 échoue avec Maven repository 'name' uses plain HTTP. elide build deps --allow-http-repositories l’accepte.
  • read("env:…") nécessite --allow-env ; voir Options de build.
  • Avec enableDefaultRepositories, les artefacts Maven viennent d’abord du proxy maven.pkg.st, puis de Maven Central. elide build deps --use-pkgst=false (ou --no-use-pkgst) n’utilise que Maven Central ; les options globales --pkgst et --no-pkgst n’y changent rien.

Options Maven

OptionEffet
--slimIgnore les sources et la Javadoc.
--with=sourcesRécupère aussi les sources ; javadoc et docs fonctionnent également. Les valeurs inconnues sortent avec le code 2.
--directCopie les artefacts dans le projet au lieu de créer des liens.
--freshTé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

CheminContenu
.dev/dependencies/npm/node_modulesPaquets npm ; node_modules à la racine du projet pointe ici.
aube-lock.yamlFichier de verrouillage npm.
.dev/dependencies/m2Liens vers le cache Maven standard.
.dev/dependencies/m2/{compile,runtime,test,processors}.classpathClasspaths 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 test a alors besoin de votre propre junit-platform-console pour les tests JVM.
  • dev.elide:elide-api et elide-insight acceptent latest comme 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.

Cette page vous a-t-elle aidé ?