Когда я создавал приложение Spring Boot, я мог видеть mvnw
и mvnw.cmd
файлы в корне проекта. Какова цель этих двух файлов?
Когда я создавал приложение Spring Boot, я мог видеть mvnw
и mvnw.cmd
файлы в корне проекта. Какова цель этих двух файлов?
Ответы:
Эти файлы из оболочки Maven . Он работает аналогично оболочке Gradle .
Это позволяет запускать проект Maven без установки и представления Maven на пути. Он загружает правильную версию Maven, если он не найден (насколько я знаю по умолчанию в вашем домашнем каталоге пользователя).
mvnw
Файл для Linux (Баш) и mvnw.cmd
для окружающей среды Windows.
Для создания или обновления всех необходимых файлов Maven Wrapper выполните следующую команду:
mvn -N io.takari:maven:wrapper
Чтобы использовать другую версию maven, вы можете указать версию следующим образом:
mvn -N io.takari:maven:wrapper -Dmaven=3.3.3
Обе команды требуют включения maven PATH
(добавьте путь к maven bin
для Path
системных переменных), если в вашем проекте уже есть mvnw, который вы можете использовать ./mvnw
вместо mvn
команд.
Команда mvnw
использует Maven, который по умолчанию загружается ~/.m2/wrapper
при первом использовании.
URL с Maven указывается в каждом проекте по адресу .mvn/wrapper/maven-wrapper.properties
:
distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
Чтобы обновить или изменить версию Maven, выполните следующие действия (не забывайте о --non-recursive
многомодульных проектах):
./mvnw io.takari:maven:wrapper -Dmaven=3.3.9
или просто измените .mvn/wrapper/maven-wrapper.properties
вручную.
Чтобы создать оболочку с нуля с помощью Maven (она должна быть PATH
запущена:
mvn io.takari:maven:wrapper -Dmaven=3.3.9
Maven Wrapper является отличным выбором для проектов , которые нуждаются в конкретной версии Maven (или для пользователей , которые не хотят , чтобы установить Maven на всех). Вместо того, чтобы устанавливать многие его версии в операционной системе, мы можем просто использовать специфический для проекта скрипт-обертку.
mvnw: это исполняемый скрипт оболочки Unix, используемый вместо полностью установленного Maven
mvnw.cmd : это для среды Windows
Случаи использования
Оболочка должна работать с различными операционными системами, такими как:
После этого мы можем выполнить наши цели для системы Unix следующим образом:
./mvnw clean install
И следующая команда для Batch:
./mvnw.cmd clean install
Если в свойствах оболочки нет указанного Maven, он будет загружен и установлен в папку $USER_HOME/.m2/wrapper/dists
системы.
Плагин Maven Wrapper
Плагин Maven Wrapper для автоматической установки в простом проекте Spring Boot.
Сначала нам нужно зайти в главную папку проекта и запустить эту команду:
mvn -N io.takari:maven:wrapper
Мы также можем указать версию Maven:
mvn -N io.takari:maven:wrapper -Dmaven=3.5.2
Опция -N означает –non-recursive, так что оболочка будет применяться только к основному проекту текущего каталога, а не к каким-либо подмодулям.
Безусловно, лучшим вариантом в настоящее время является использование контейнера maven в качестве инструмента для сборки. Такой mvn.sh
сценарий будет достаточно:
#!/bin/bash
docker run --rm -ti \
-v $(pwd):/opt/app \
-w /opt/app \
-e TERM=xterm \
-v $HOME/.m2:/root/.m2 \
maven mvn "$@"
mvn
команду для работы Maven, хотя я мог использовать./mvnw
для той же цели.