elide mvn запускает сборки Apache Maven 4 без отдельной установки Maven или JDK.
Запуск сборки
elide mvn -- package
elide mvn -- -f app/pom.xml clean install
elide mvn -- --versionВсё после -- передаётся Maven, кроме --flavor, --mode, --yes и --porcelain, которые обрабатывает
elide mvn. Корень проекта — ближайший каталог .mvn выше -f/--file или рабочего каталога.
Первый запуск
Каждый вариант скачивается один раз, с запросом при первом использовании:
Native Maven component 'generic' is not installed. Download it now? [Y/n]Образы устанавливаются в lib/maven/bin/ в домашнем каталоге Elide. Неинтерактивные сеансы скачивают без вопросов; в
терминале --yes пропускает запрос:
elide mvn -- --yes package| Платформа | Архитектура |
|---|---|
| Linux | x86_64, aarch64 |
| macOS | aarch64 |
| Windows | x86_64 |
Варианты
Вариант — это набор плагинов Maven, которые работают нативно.
| Вариант | Плагины | Для чего |
|---|---|---|
generic | Стандартный жизненный цикл: clean, resources, compiler, surefire, jar, install, deploy | Обычные проекты на Java или Kotlin |
spring@4.1.0 | Всё, что использует проект Boot 4.1 из Spring Initializr | Spring Boot 4.1.x |
spring@4.0.7 | То же для Boot 4.0 | Spring Boot 4.0.x |
Elide выбирает вариант spring, совпадающий с major.minor версии родителя spring-boot-starter-parent или
spring-boot-maven-plugin в pom.xml (Boot 4.1.3 → spring@4.1.0). Иначе, в том числе при заполнителях ${…},
используется generic. Чтобы выбрать вариант явно:
elide mvn -- --flavor spring@4.1.0 package
elide mvn -- --flavor=spring@4.0.7 -f app/pom.xml installРежимы
--mode=<value> (или -Dnmvn.mode=<value>; флаг имеет приоритет) определяет, что запускает плагины вне варианта:
elide mvn -- --mode=mixed package| Режим | Поведение |
|---|---|
native (по умолчанию) | Работают только плагины варианта. Отсутствующий плагин приводит к ранней ошибке с названием варианта, в котором он есть, и подсказкой --mode=mixed. |
mixed | Плагины варианта работают нативно; остальные цели выполняются по одной на JVM в том же процессе. |
legacy | Вся сборка выполняется как обычный Apache Maven на JVM внутри процесса, в качестве эталона. |
mixed и legacy при первом использовании скачивают дистрибутив Maven в lib/maven/. Отдельный JDK не нужен.
Ограничения режима mixed
- Каждая делегированная цель добавляет около 0,2 с после однократного запуска. Если делегируется большинство целей, выберите вариант, в котором больше их плагинов.
- Артефакты делегированной цели не прикрепляются к сеансу. Если плагина jar нет в варианте, запускайте
package, а неinstallилиdeploy. - Конфигурация плагинов из командной строки передаётся делегированным целям только как свойства
-D.
Вывод
В терминале отображается строка состояния (плагин, цель, версия, модуль), затем сводка по фазам и время сборки; при
ошибке выводится полный журнал Maven. --porcelain транслирует собственный вывод Maven, как и подробные, отладочные и
неинтерактивные запуски:
elide mvn -- --porcelain packageПроверка установленного образа
<elide-home>/lib/maven/bin/nmvn-generic --info
<elide-home>/lib/maven/bin/nmvn-spring-4.1.0 --info=plugins--info выводит вариант, редакцию и плагины; --info=plugins, --info=flavor или --info=variant выводит только
соответствующие сведения.
Совместимость
Native Maven читает тот же pom.xml и следует тому же жизненному циклу, что и Apache Maven 4. Поддержка плагинов
ограничена опубликованными вариантами. Компиляция выполняется внутри процесса; плагины, которые запускают компилятор в
отдельном процессе, используют javac из Elide.