Saltar al contenido

Native Maven

Ejecute compilaciones de Apache Maven 4 con elide mvn sin instalar Maven ni un JDK por separado: variantes para proyectos simples y de Spring Boot, modos y salida.

En esta página

elide mvn ejecuta compilaciones de Apache Maven 4 sin instalar Maven ni un JDK por separado.

Ejecutar una compilación

elide mvn -- package
elide mvn -- -f app/pom.xml clean install
elide mvn -- --version

Todo lo que va después de -- se pasa a Maven, salvo --flavor, --mode, --yes y --porcelain, que gestiona elide mvn. La raíz del proyecto es el directorio .mvn más cercano por encima de -f/--file o del directorio de trabajo.

Primera ejecución

Cada variante se descarga una sola vez, con una confirmación en el primer uso:

Native Maven component 'generic' is not installed. Download it now? [Y/n]

Las imágenes se instalan en lib/maven/bin/ dentro del directorio de Elide. Las sesiones no interactivas descargan sin preguntar; en una terminal, --yes omite la confirmación:

elide mvn -- --yes package
PlataformaArquitectura
Linuxx86_64, aarch64
macOSaarch64
Windowsx86_64

Variantes

Una variante es el conjunto de plugins de Maven que se ejecutan de forma nativa.

VariantePluginsPara
genericCiclo de vida predeterminado: clean, resources, compiler, surefire, jar, install, deployProyectos simples de Java o Kotlin
spring@4.1.0Todo lo que usa un proyecto de Boot 4.1 creado con Spring InitializrSpring Boot 4.1.x
spring@4.0.7Lo mismo, para Boot 4.0Spring Boot 4.0.x

Elide elige la variante spring que coincide con el major.minor de la versión del padre spring-boot-starter-parent o de spring-boot-maven-plugin en pom.xml (Boot 4.1.3 → spring@4.1.0). En otro caso, incluso con marcadores ${…}, usa generic. Para forzar otra:

elide mvn -- --flavor spring@4.1.0 package
elide mvn -- --flavor=spring@4.0.7 -f app/pom.xml install

Modos

--mode=<value> (o -Dnmvn.mode=<value>; la opción tiene prioridad) determina qué ejecuta los plugins que no están en la variante:

elide mvn -- --mode=mixed package
ModoComportamiento
native (predeterminado)Solo se ejecutan los plugins de la variante. Si falta un plugin, falla pronto, indica la variante que lo incluye y sugiere --mode=mixed.
mixedLos plugins de la variante se ejecutan de forma nativa; los demás objetivos se ejecutan de uno en uno en una JVM dentro del mismo proceso.
legacyToda la compilación se ejecuta como Apache Maven estándar en la JVM del proceso, como referencia.

mixed y legacy descargan una distribución de Maven en lib/maven/ en el primer uso. No hace falta un JDK aparte.

Límites del modo mixto

  • Cada objetivo delegado añade unos 0,2 s tras un arranque único. Si la mayoría de los objetivos se delegan, elija una variante que incluya más de sus plugins.
  • Los artefactos de un objetivo delegado no se adjuntan a la sesión. Si el plugin jar no está en la variante, ejecute package, no install ni deploy.
  • La configuración de plugins desde la línea de comandos solo llega a los objetivos delegados como propiedades -D.

Salida

Una terminal muestra una línea de estado (plugin, objetivo, versión, módulo) y después un resumen de fases y el tiempo de compilación; si algo falla, se imprime el registro completo de Maven. --porcelain transmite la salida propia de Maven, igual que las ejecuciones detalladas, de depuración y no interactivas:

elide mvn -- --porcelain package

Inspeccionar una imagen instalada

<elide-home>/lib/maven/bin/nmvn-generic --info
<elide-home>/lib/maven/bin/nmvn-spring-4.1.0 --info=plugins

--info imprime la variante, la edición y los plugins; --info=plugins, --info=flavor o --info=variant imprime solo uno de ellos.

Compatibilidad

Native Maven lee el mismo pom.xml y sigue el mismo ciclo de vida que Apache Maven 4. La cobertura de plugins se limita a las variantes publicadas. La compilación se ejecuta dentro del proceso; los plugins que lanzan el compilador en un proceso aparte usan el javac de Elide.

¿Te resultó útil esta página?