Zum Inhalt springen

Maven-Abhängigkeiten

Installieren Sie Maven-Abhängigkeiten mit elide install, auch für Projekte mit nur einer pom.xml, und konfigurieren Sie Annotationsprozessoren in einem Elide-Projekt.

Auf dieser Seite

Elide löst Maven-Abhängigkeiten auf, die in elide.pkl oder einer pom.xml deklariert sind.

elide install

Maven ist das Standard-Ökosystem. Buckets, Repositorys, Zugangsdaten und Installationsoptionen: Abhängigkeiten.

Projekte mit nur einer pom.xml

elide install -p .

Elide liest die direkten Abhängigkeiten des POM, ${property}-Werte und sein eigenes dependencyManagement. Eltern-POMs und importierte BOMs werden nicht zusammengeführt; eine Abhängigkeit, deren Version nur ein Eltern-POM festlegt, entfällt.

POM-ScopeBucket
compilepackages
provided, systemcompileOnly
runtimeruntimeOnly
testtestPackages

Um Maven-Goals auszuführen, verwenden Sie Native Maven.

Code von Abhängigkeiten untersuchen

In einem elide.pkl-Projekt erfasst der experimentelle Codeindex für Abhängigkeiten Typen, Member und Referenzen aus aufgelösten Maven-JARs. Mit elide index resolve finden Sie das Artefakt, das eine Klasse definiert, mit elide index references sehen Sie, was eine Klasse aus einer Abhängigkeit verwendet.

OpenRewrite nutzt diesen Index, um Java-Rezepte auszuführen. Deklarieren Sie zusätzliche Rezeptmodule unter dependencies.maven.devPackages und prüfen Sie Änderungen an den Quellen vorab mit --dry-run.

Annotationsprozessoren

dependencies {
  maven {
    packages { "org.mapstruct:mapstruct:1.6.3" }
    processors { "org.mapstruct:mapstruct-processor:1.6.3" }
  }
}
  • Prozessoren laufen in elide build und elide javac, für die Haupt- und Test-Source-Sets.
  • Ein geändertes Prozessor-JAR löst eine Neukompilierung aus.
  • Generierte Quellen werden nach .dev/jvm/generated-sources/<set>/java geschrieben und mit dem Set kompiliert.
  • Prozessoren sehen nur Java-Quellen, nie Kotlin-Deklarationen. Kotlin wird vor der Java-Verarbeitung kompiliert; Kotlin-Code, der generierte Typen nutzt, muss sie daher aus einem vorgelagerten Source-Set oder Projekt beziehen.
  • KAPT und KSP werden nicht unterstützt.
  • -proc:none, -proc:only und -proc:full verhalten sich wie in javac.

elide javac --capabilities meldet, was dieser Elide-Build unterstützt:

{
  "version": 1,
  "javaAnnotationProcessing": true,
  "kotlinSymbolProcessing": false,
  "kotlinCompilerPlugins": false
}
FeldBedeutung
javaAnnotationProcessingJava-Annotationsprozessoren laufen.
kotlinSymbolProcessingKSP-Prozessoren laufen.
kotlinCompilerPluginsKotlin-Compiler-Plugins von Drittanbietern laufen im eingebetteten Compiler. Integrierte Plugins und eine verwaltete oder eigene Werkzeugkette sind nicht betroffen.

Setzen Sie ELIDE_TRACE_PROCESSORS=1, um jede Prozessorklasse beim Laden auszugeben (Loading processor dependency: demo.HelloProcessor).

War diese Seite hilfreich?