Aller au contenu

Dépendances Maven

Installez des dépendances Maven avec elide install, y compris pour les projets qui n'ont qu'un pom.xml, et configurez des processeurs d'annotations dans un projet Elide.

Sur cette page

Elide résout les dépendances Maven déclarées dans elide.pkl ou dans un pom.xml.

elide install

Maven est l’écosystème par défaut. Groupes, dépôts, identifiants et options d’installation : Dépendances.

Projets avec seulement un pom.xml

elide install -p .

Elide lit les dépendances directes du POM, les valeurs ${property} et son propre dependencyManagement. Les POM parents et les BOM importés ne sont pas fusionnés ; une dépendance dont la version n’est définie que par un parent est ignorée.

Portée POMGroupe
compilepackages
provided, systemcompileOnly
runtimeruntimeOnly
testtestPackages

Pour exécuter des goals Maven, utilisez Native Maven.

Inspecter le code des dépendances

Dans un projet elide.pkl, l’index du code des dépendances, expérimental, enregistre les types, les membres et les références des JAR Maven résolus. Utilisez elide index resolve pour trouver l’artefact qui définit une classe, ou elide index references pour voir ce qu’utilise une classe d’une dépendance.

OpenRewrite utilise cet index pour exécuter des recettes Java. Déclarez des modules de recettes supplémentaires sous dependencies.maven.devPackages et prévisualisez les modifications des sources avec --dry-run.

Processeurs d’annotations

dependencies {
  maven {
    packages { "org.mapstruct:mapstruct:1.6.3" }
    processors { "org.mapstruct:mapstruct-processor:1.6.3" }
  }
}
  • Les processeurs s’exécutent dans elide build et elide javac, sur les source sets principal et de test.
  • Un JAR de processeur modifié entraîne une recompilation.
  • Les sources générées vont dans .dev/jvm/generated-sources/<set>/java et sont compilées avec leur source set.
  • Les processeurs ne voient que les sources Java, jamais les déclarations Kotlin. Kotlin est compilé avant le traitement Java : le code Kotlin qui utilise des types générés doit donc les obtenir d’un source set ou d’un projet en amont.
  • KAPT et KSP ne sont pas pris en charge.
  • -proc:none, -proc:only et -proc:full se comportent comme dans javac.

elide javac --capabilities indique ce que prend en charge ce build d’Elide :

{
  "version": 1,
  "javaAnnotationProcessing": true,
  "kotlinSymbolProcessing": false,
  "kotlinCompilerPlugins": false
}
ChampSignification
javaAnnotationProcessingLes processeurs d’annotations Java s’exécutent.
kotlinSymbolProcessingLes processeurs KSP s’exécutent.
kotlinCompilerPluginsLes plugins tiers du compilateur Kotlin s’exécutent dans le compilateur intégré. Les plugins intégrés et une chaîne d’outils gérée ou personnalisée ne sont pas concernés.

Définissez ELIDE_TRACE_PROCESSORS=1 pour afficher chaque classe de processeur à son chargement (Loading processor dependency: demo.HelloProcessor).

Cette page vous a-t-elle aidé ?