Zum Inhalt springen

Abhängigkeiten

Deklarieren Sie Maven-, npm- und PyPI-Abhängigkeiten in elide.pkl und installieren Sie Maven- und npm-Pakete mit elide install: Ökosysteme, Optionen und installierte Dateien.

Auf dieser Seite

Deklarieren Sie Abhängigkeiten in elide.pkl und installieren Sie sie mit elide install.

ÖkosystemAktivieren mitGelesen aus
MavenStandardelide.pkl oder einem mit -p ausgewählten pom.xml-Projekt
npm--ecosystems=npmelide.pkl und package.json
PyPI—dependencies.pypi wird akzeptiert; elide install installiert es nicht

Abhängigkeiten installieren

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

Eine package.json schaltet npm nicht ein; nennen Sie jedes Ökosystem, das CI braucht. Ein unbekanntes oder nicht verfügbares Ökosystem ist ein Bedienungsfehler.

Abhängigkeiten deklarieren

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" } }
  }
}

Für ein Projekt, das nur eine pom.xml hat, führen Sie elide install -p . aus; siehe Maven-Abhängigkeiten.

Maven-Buckets

Ein Eintrag ist group:artifact:version[:classifier], eine MavenPackageSpec, ein lokaler JAR-Pfad oder eine project("name")-Referenz. Workspace-Mitglieder können die Version weglassen und die der Wurzel übernehmen (Workspaces). Konflikte werden wie bei Maven nach dem nächstgelegenen Eintrag aufgelöst.

BucketGilt für
packagesCompile- und Laufzeit-Classpath der Produktions-Sets.
devPackagesNur zur Entwicklungszeit.
modules--module-path für Kompilierungen, Ausführungen, Tests und native Images.
compileOnlyNur den Compile-Classpath.
runtimeOnlyNur den Laufzeit-Classpath.
processorsAnnotation-Processor-Pfad; siehe Maven-Abhängigkeiten.
testPackagesTest-Sets, zusätzlich zu den Abhängigkeiten ihres Produktions-Sets.
kotlinPluginsKotlin-Compiler-Plugins; siehe Kotlin-Compiler.
exclusionsAus der Auflösung und aus jedem Classpath entfernt.
substitutionsLokale Dateien, die eine Koordinate in jedem Classpath ersetzen; siehe Referenz.

Spring-Boot-Starter:

dependencies {
  spring {
    version = "4.0.0"
    starter { "web"; "actuator" }
    testStarter { "test" }
  }
}

Jeder Name wird zu org.springframework.boot:spring-boot-starter-<name>:<version> in packages oder testPackages. Andere Spring-Artefakte (spring-boot-devtools, org.springframework:*) gehören in maven; beide werden zusammengeführt.

Repositorys

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"
  }
}
EigenschaftBedeutung
repositories[name].urlURL des Repositorys.
repositories[name].credentials.username, .passwordBasic-Authentifizierung.
repositories[name].credentials.ntlmDomain, .ntlmWorkstationJede der beiden wählt NTLM.
repositories[name].name, .descriptionAnzeigename und Beschreibung.
enableDefaultRepositoriesMaven Central einbeziehen (Standard true).
localRepositoryLokales Maven-Repository, in das aufgelöst wird.
  • Unverschlüsseltes http:// zu einem Ziel außerhalb von 127.0.0.0/8 schlägt mit Maven repository 'name' uses plain HTTP fehl. elide build deps --allow-http-repositories akzeptiert es.
  • read("env:…") braucht --allow-env; siehe Build-Flags.
  • Mit enableDefaultRepositories kommen Maven-Artefakte zuerst vom Proxy maven.pkg.st, dann von Maven Central. elide build deps --use-pkgst=false (oder --no-use-pkgst) verwendet nur Maven Central; die globalen Flags --pkgst und --no-pkgst ändern daran nichts.

Maven-Optionen

OptionWirkung
--slimQuellen und Javadoc überspringen.
--with=sourcesZusätzlich Quellen laden; javadoc und docs funktionieren ebenfalls. Unbekannte Werte enden mit Exit-Code 2.
--directArtefakte ins Projekt kopieren, statt sie zu verlinken.
--freshJede Abhängigkeit erneut herunterladen und so den globalen Cache auffrischen.

elide build deps führt dieselbe Auflösung als Task aus und akzeptiert außerdem --offline, --allow-http-repositories und --use-pkgst.

Installierte Dateien

PfadInhalt
.dev/dependencies/npm/node_modulesnpm-Pakete; node_modules in der Projektwurzel verweist hierher.
aube-lock.yamlnpm-Lockfile.
.dev/dependencies/m2Links in den Standard-Maven-Cache.
.dev/dependencies/m2/{compile,runtime,test,processors}.classpathAufgelöste Classpaths; siehe elide classpath.

In einem Workspace liegen die Links in .dev/dependencies/ der Wurzel; Classpath-Dateien bleiben pro Projekt. Es gibt kein ökosystemübergreifendes Lockfile; siehe Build-Zustand.

Code von Abhängigkeiten abfragen

Der experimentelle Codeindex für Abhängigkeiten erfasst Typen, Member und Referenzen aus aufgelösten Maven-JARs. Erstellen Sie ihn mit elide index build --layers=l1,l2,l3 und verwenden Sie dann resolve, um herauszufinden, welches Artefakt eine Klasse definiert, get, um einen Typ oder Member zu untersuchen, und references, um seinen Codereferenzen zu folgen. used-by findet passende kompilierte lokale Quellen.

OpenRewrite verwendet denselben Index für Transformationen von Java-Quellcode. Fügen Sie Rezeptmodule zu devPackages hinzu; sie sind Entwicklungswerkzeuge und von den Abhängigkeiten der Anwendung getrennt.

Implizite JVM-Bibliotheken

  • Reine Java-Wurzeln erhalten keine impliziten Kotlin-Bibliotheken, keine Metro-Laufzeitbibliothek und keine Annotations-API von Elide, auch nicht mit einem kotlin-Block.
  • Kotlin-Wurzeln erhalten die Bibliotheken, die ihre kotlin.features aktivieren.
  • Kotlin-Wurzeln erhalten außerdem die atomicfu-Laufzeitbibliothek, sofern nicht kotlin.features.atomicfu = false.
  • Test-Sets erhalten das mitgelieferte JUnit, sofern nicht jvm.features.testing = false; elide test braucht dann eine eigene junit-platform-console für JVM-Tests.
  • dev.elide:elide-api und elide-insight akzeptieren latest als Version und werden zum mitgelieferten Artefakt aufgelöst.

Die vollständige Liste mit Versionen: JVM-APIs. Um Elide-Annotationen aus Java zu verwenden:

dependencies {
  maven {
    compileOnly { "dev.elide:elide-api:1.0.0" }
  }
}

Details zu npm: npm-Installer.

War diese Seite hilfreich?