> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/osnovy-programmirovaniya-na-java/maven-fazy-plaginy-zavisimosti-i-sborka.md).

# Maven: фазы, плагины, зависимости и сборка

Maven - это инструмент для управления проектами на языке Java, который предоставляет автоматизацию сборки проекта, управление зависимостями, выполнение различных задач и т. д.&#x20;

1. **Фазы сборки (Build Phases)**: Maven представляет процесс сборки проекта как последовательность фаз, которые описываются в файле `pom.xml`. Некоторые основные фазы:
   * `validate`: Проверка корректности проекта.
   * `compile`: Компиляция исходных файлов.
   * `test`: Запуск тестов.
   * `package`: Упаковка скомпилированных файлов в итоговый артефакт (JAR, WAR и т. д.).
   * `install`: Установка артефакта в локальный репозиторий.
   * `deploy`: Размещение артефакта в удаленном репозитории.
2. **Плагины (Plugins)**: Maven использует плагины для выполнения различных задач на различных этапах сборки проекта. Плагины определяются в файле `pom.xml` и могут выполнять задачи, такие как компиляция, тестирование, создание артефактов и т. д.

   Пример объявления плагина:

   ```xml
   <build>
       <plugins>
           <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <version>3.8.1</version>
               <configuration>
                   <source>1.8</source>
                   <target>1.8</target>
               </configuration>
           </plugin>
       </plugins>
   </build>
   ```
3. **Зависимости (Dependencies)**: Maven позволяет управлять зависимостями проекта, автоматически загружая их из удаленных репозиториев и добавляя их в проект. Зависимости описываются в файле `pom.xml`.

   Пример объявления зависимости:

   ```xml
   <dependencies>
       <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
           <version>3.12.0</version>
       </dependency>
   </dependencies>
   ```
4. **Сборка проекта**: Для сборки проекта с использованием Maven в командной строке нужно выполнить команду `mvn clean install`. Это пример команды, которая очищает проект, компилирует исходные файлы, выполняет тесты, упаковывает артефакт и устанавливает его в локальный репозиторий.
