Zum Inhalt springen

Native Maven

Führen Sie Apache-Maven-4-Builds mit elide mvn aus, ohne separate Maven- oder JDK-Installation: Flavors für einfache und Spring-Boot-Projekte, Modi und Ausgabe.

Auf dieser Seite

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 -- --version

Alles 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
PlattformArchitektur
Linuxx86_64, aarch64
macOSaarch64
Windowsx86_64

Flavors

Ein Flavor ist die Menge der Maven-Plugins, die nativ laufen.

FlavorPluginsFür
genericStandard-Lebenszyklus: clean, resources, compiler, surefire, jar, install, deployEinfache Java- oder Kotlin-Projekte
spring@4.1.0Alles, was ein Boot-4.1-Projekt aus dem Spring Initializr verwendetSpring Boot 4.1.x
spring@4.0.7Dasselbe für Boot 4.0Spring 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 install

Modi

--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
ModusVerhalten
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.
mixedPlugins des Flavors laufen nativ; andere Goals laufen nacheinander auf einer JVM im selben Prozess.
legacyDer 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 package aus, nicht install oder deploy.
  • 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 package

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

War diese Seite hilfreich?