Перейти до вмісту

Native Maven

Запускайте збирання Apache Maven 4 через elide mvn без окремого встановлення Maven чи JDK: варіанти для звичайних проєктів і Spring Boot, режими та вивід.

На цій сторінці

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
ПлатформаАрхітектура
Linuxx86_64, aarch64
macOSaarch64
Windowsx86_64

Варіанти

Варіант — це набір плагінів Maven, які працюють нативно.

ВаріантПлагіниДля чого
genericСтандартний життєвий цикл: clean, resources, compiler, surefire, jar, install, deployЗвичайні проєкти на Java або Kotlin
spring@4.1.0Усе, що використовує проєкт Boot 4.1 зі Spring InitializrSpring Boot 4.1.x
spring@4.0.7Те саме для Boot 4.0Spring 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.

Чи була ця сторінка корисною?