Коли я створив додаток 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для тих же цілей.