elide mvn lance des builds Apache Maven 4 sans installer Maven ni un JDK à part.
Lancer un build
elide mvn -- package
elide mvn -- -f app/pom.xml clean install
elide mvn -- --versionTout ce qui suit -- est transmis à Maven, sauf --flavor, --mode, --yes et --porcelain, que gère elide mvn.
La racine du projet est le répertoire .mvn le plus proche au-dessus de -f/--file ou du répertoire de travail.
Première exécution
Chaque variante se télécharge une seule fois, avec une confirmation à la première utilisation :
Native Maven component 'generic' is not installed. Download it now? [Y/n]Les images s’installent dans lib/maven/bin/ du répertoire d’Elide. Les sessions non interactives téléchargent sans
demander ; dans un terminal, --yes saute la confirmation :
elide mvn -- --yes package| Plateforme | Architecture |
|---|---|
| Linux | x86_64, aarch64 |
| macOS | aarch64 |
| Windows | x86_64 |
Variantes
Une variante est l’ensemble des plugins Maven qui s’exécutent en natif.
| Variante | Plugins | Pour |
|---|---|---|
generic | Cycle de vie par défaut : clean, resources, compiler, surefire, jar, install, deploy | Projets Java ou Kotlin simples |
spring@4.1.0 | Tout ce qu’utilise un projet Boot 4.1 généré par Spring Initializr | Spring Boot 4.1.x |
spring@4.0.7 | Idem, pour Boot 4.0 | Spring Boot 4.0.x |
Elide choisit la variante spring qui correspond au major.minor de la version du parent
spring-boot-starter-parent ou de spring-boot-maven-plugin dans pom.xml (Boot 4.1.3 → spring@4.1.0). Sinon, y
compris avec des espaces réservés ${…}, il utilise generic. Pour forcer un autre choix :
elide mvn -- --flavor spring@4.1.0 package
elide mvn -- --flavor=spring@4.0.7 -f app/pom.xml installModes
--mode=<value> (ou -Dnmvn.mode=<value> ; l’option l’emporte) détermine ce qui exécute les plugins absents de la
variante :
elide mvn -- --mode=mixed package| Mode | Comportement |
|---|---|
native (par défaut) | Seuls les plugins de la variante s’exécutent. Un plugin manquant fait échouer le build tôt, en nommant la variante qui le contient et en suggérant --mode=mixed. |
mixed | Les plugins de la variante s’exécutent en natif ; les autres goals s’exécutent un par un sur une JVM dans le même processus. |
legacy | Tout le build s’exécute comme Apache Maven standard sur la JVM du processus, comme point de comparaison. |
mixed et legacy téléchargent une distribution Maven dans lib/maven/ à la première utilisation. Aucun JDK séparé
n’est nécessaire.
Limites du mode mixte
- Chaque goal délégué ajoute environ 0,2 s après un démarrage unique. Si la plupart des goals sont délégués, choisissez une variante qui contient davantage de leurs plugins.
- Les artefacts d’un goal délégué ne sont pas attachés à la session. Si le plugin jar n’est pas dans la variante,
lancez
package, pasinstallnideploy. - La configuration de plugins passée en ligne de commande n’atteint les goals délégués que sous forme de propriétés
-D.
Sortie
Un terminal affiche une ligne d’état (plugin, goal, version, module), puis un résumé des phases et la durée du build ;
en cas d’échec, le journal Maven complet s’affiche. --porcelain diffuse la sortie propre de Maven, tout comme les
exécutions verbeuses, de débogage et non interactives :
elide mvn -- --porcelain packageInspecter une image installée
<elide-home>/lib/maven/bin/nmvn-generic --info
<elide-home>/lib/maven/bin/nmvn-spring-4.1.0 --info=plugins--info affiche la variante, l’édition et les plugins ; --info=plugins, --info=flavor ou --info=variant n’en
affiche qu’un.
Compatibilité
Native Maven lit le même pom.xml et suit le même cycle de vie qu’Apache Maven 4. La couverture des plugins se limite
aux variantes publiées. La compilation s’exécute dans le processus ; les plugins qui lancent le compilateur en fork
utilisent le javac d’Elide.