Коли я створив додаток 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 on 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 означає –нерекурсивний, так що обгортка буде застосована лише до основного проекту поточного каталогу, а не до будь-яких підмодулів.
На сьогоднішній день найкращим варіантом на сьогодні було б використання контейнера 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
для тих же цілей.