elide mvn führt Apache-Maven-4-Builds ohne separate Maven- oder JDK-Installation aus.
Einen Build ausführen
elide mvn -- package
elide mvn -- -f app/pom.xml clean install
elide mvn -- --versionAlles nach -- geht an Maven, außer --flavor, --mode, --yes und --porcelain, die elide mvn selbst
verarbeitet. Das Projektverzeichnis ist das nächstgelegene .mvn-Verzeichnis oberhalb von -f/--file oder des
Arbeitsverzeichnisses.
Erster Lauf
Jeder Flavor wird einmalig heruntergeladen, mit einer Rückfrage bei der ersten Verwendung:
Native Maven component 'generic' is not installed. Download it now? [Y/n]Die Images werden nach lib/maven/bin/ im Elide-Verzeichnis installiert. Nicht interaktive Sitzungen laden ohne
Rückfrage herunter; im Terminal überspringt --yes die Rückfrage:
elide mvn -- --yes package| Plattform | Architektur |
|---|---|
| Linux | x86_64, aarch64 |
| macOS | aarch64 |
| Windows | x86_64 |
Flavors
Ein Flavor ist die Menge der Maven-Plugins, die nativ laufen.
| Flavor | Plugins | Für |
|---|---|---|
generic | Standard-Lebenszyklus: clean, resources, compiler, surefire, jar, install, deploy | Einfache Java- oder Kotlin-Projekte |
spring@4.1.0 | Alles, was ein Boot-4.1-Projekt aus dem Spring Initializr verwendet | Spring Boot 4.1.x |
spring@4.0.7 | Dasselbe für Boot 4.0 | Spring Boot 4.0.x |
Elide wählt den spring-Flavor, der zu major.minor der Version des Parents spring-boot-starter-parent oder von
spring-boot-maven-plugin in pom.xml passt (Boot 4.1.3 → spring@4.1.0). Andernfalls, auch bei
${…}-Platzhaltern, verwendet es generic. Zum Überschreiben:
elide mvn -- --flavor spring@4.1.0 package
elide mvn -- --flavor=spring@4.0.7 -f app/pom.xml installModi
--mode=<value> (oder -Dnmvn.mode=<value>; das Flag hat Vorrang) legt fest, was Plugins außerhalb des Flavors
ausführt:
elide mvn -- --mode=mixed package| Modus | Verhalten |
|---|---|
native (Standard) | Nur Plugins des Flavors laufen. Ein fehlendes Plugin führt früh zum Fehler, der den Flavor nennt, der es enthält, und --mode=mixed vorschlägt. |
mixed | Plugins des Flavors laufen nativ; andere Goals laufen nacheinander auf einer JVM im selben Prozess. |
legacy | Der gesamte Build läuft als reguläres Apache Maven auf der JVM im Prozess, als Vergleichsbasis. |
mixed und legacy laden bei der ersten Verwendung eine Maven-Distribution nach lib/maven/ herunter. Ein separates
JDK ist nicht nötig.
Einschränkungen des Modus mixed
- Jedes delegierte Goal kostet nach einem einmaligen Start etwa 0,2 s. Wenn die meisten Goals delegiert werden, wählen Sie einen Flavor, der mehr ihrer Plugins enthält.
- Die Artefakte eines delegierten Goals werden nicht an die Sitzung angehängt. Wenn das jar-Plugin nicht im Flavor
ist, führen Sie
packageaus, nichtinstalloderdeploy. - Plugin-Konfiguration auf der Kommandozeile erreicht delegierte Goals nur als
-D-Properties.
Ausgabe
Ein Terminal zeigt eine Statuszeile (Plugin, Goal, Version, Modul), danach eine Zusammenfassung der Phasen und die
Build-Dauer; bei Fehlern wird das vollständige Maven-Log ausgegeben. --porcelain gibt die Ausgabe von Maven selbst
fortlaufend aus, ebenso ausführliche, Debug- und nicht interaktive Läufe:
elide mvn -- --porcelain packageEin installiertes Image untersuchen
<elide-home>/lib/maven/bin/nmvn-generic --info
<elide-home>/lib/maven/bin/nmvn-spring-4.1.0 --info=plugins--info gibt Flavor, Variante und Plugins aus; --info=plugins, --info=flavor oder --info=variant gibt jeweils
eines davon aus.
Kompatibilität
Native Maven liest dieselbe pom.xml und folgt demselben Lebenszyklus wie Apache Maven 4. Die Plugin-Abdeckung ist
auf die veröffentlichten Flavors beschränkt. Kompiliert wird im selben Prozess; Plugins, die den Compiler forken,
verwenden das javac von Elide.