Struchkov Mark
e9fc372054
All checks were successful
continuous-integration/drone/push Build is passing
41 lines
4.6 KiB
Markdown
41 lines
4.6 KiB
Markdown
---
|
||
zero-link:
|
||
- "[[00 Java разработка]]"
|
||
tags:
|
||
- type/zero-link
|
||
aliases:
|
||
- мавен
|
||
- мавеном
|
||
- Maven
|
||
parents:
|
||
- "[[Система сборки]]"
|
||
title: Maven
|
||
---
|
||
Maven — это [[../../../../knowledge/dev/Система сборки|инструмент для автоматизации сборки проектов]], который управляет их жизненным циклом. Жизненный цикл Maven состоит из нескольких фаз, каждая из которых выполняет определенную задачу, необходимую для успешной сборки и управления проектом.
|
||
## Основные фазы жизненного цикла
|
||
1. **validate** — Проверка корректности проекта и наличия всей необходимой информации.
|
||
2. **compile** — Компиляция исходного кода проекта.
|
||
3. **test** — Запуск тестов (обычно с использованием JUnit или TestNG) и проверка их успешного выполнения.
|
||
4. **package** — Сборка скомпилированного кода и упаковка его, например, в JAR или WAR-файл.
|
||
5. **verify** — Проверка собранных артефактов и результатов тестов.
|
||
6. **install** — Установка пакета в локальный репозиторий для использования в других проектах.
|
||
7. **deploy** — Отправка финального пакета в удаленный репозиторий для использования в других проектах или на сервере.
|
||
|
||
|
||
> [!WARNING]
|
||
> Фазы выполняются последовательно, и каждая фаза зависит от предыдущих. Например, при запуске команды `mvn install` Maven автоматически выполнит все предыдущие фазы — от `validate` до `install`.
|
||
## Основные команды
|
||
- `mvn clean` — Удаляет папку `target`, очищая проект от предыдущих сборок. Полезно использовать перед началом новой сборки, чтобы избежать конфликтов.
|
||
- `mvn compile` — Компилирует исходный код проекта. Используется на этапе разработки для проверки, что код компилируется без ошибок.
|
||
- `mvn test` — Запускает тесты. Применяется для проверки корректности работы кода после изменений.
|
||
- `mvn package` — Упаковывает скомпилированный код в конечный артефакт (обычно JAR или WAR). Используется, когда необходимо подготовить проект для развертывания.
|
||
- `mvn install` — Устанавливает артефакт в локальный репозиторий. Применяется для того, чтобы сделать артефакт доступным для других локальных проектов.
|
||
- `mvn deploy` — Деплоит артефакт в удаленный репозиторий. Используется для распространения артефакта среди других разработчиков или для развертывания на сервере.
|
||
- `mvn site` — Генерирует документацию проекта на основе кода и зависимостей. Полезно для создания отчетов и документации по проекту.
|
||
|
||
## Дополнительные материалы
|
||
- [Параллельная сборка модулей в Maven](../../dev/java/Параллельная%20сборка%20модулей%20в%20Maven.md)
|
||
- [Публикация Java приложения в личный Nexus](https://struchkov.dev/blog/ru/java-jar-deploy-to-nexus/)
|
||
- [Публикация Java библиотеки в Maven Central](https://struchkov.dev/blog/ru/deploy-to-maven-central/)
|
||
- [[../../dev/java/Мультимодульные проекты c Jandex|Мультимодульные проекты c Jandex]]
|
||
- [Автоматизация рутины при выпуске релизов с Maven](https://struchkov.dev/blog/ru/release-releases-with-maven/) |