офлайн
офлайн
ГлавнаяMaven и Gradle.md
---
tags: [java, maven, gradle]
created: 2026-11-06
updated: 
---

Maven и Gradle

Javajavamavengradle2 мин
Содержание

› Определение и назначение Build Tool

Build Tool (Система автоматизации сборки) — программное обеспечение, предназначенное для автоматизации процессов компиляции, управления зависимостями, запуска тестирования, упаковки и дистрибуции исходного кода в исполняемый артефакт (JAR, WAR, Native binary).

Основные функции:

  • Управление зависимостями: разрешение дерева зависимостей (включая транзитивные) и их загрузка из репозиториев (Maven Central).
  • Трансляция кода: компиляция исходного кода в платформонезависимый байт-код.
  • Автоматизация тестирования: выполнение наборов Unit- и интеграционных тестов.
  • Компоновка: сборка скомпилированного кода и ресурсов в архив с генерацией файла манифеста (MANIFEST.MF).
  • Развертывание: публикация артефактов в локальные (~/.m2) и удаленные репозитории (Nexus, Artifactory).

› Жизненный цикл Maven (Default Lifecycle)

Исполнение строится на жестко заданной линейной последовательности фаз. Вызов конечной фазы влечет последовательное выполнение всех предшествующих:

  1. validate — проверка корректности структуры проекта и файла pom.xml.
  2. compile — компиляция основного исходного кода.
  3. test — запуск модульных тестов с использованием плагина Surefire.
  4. package — упаковка скомпилированного кода в целевой формат (.jar/.war).
  5. verify — запуск интеграционных тестов и проверка критериев качества.
  6. install — размещение артефакта в локальном репозитории ОС (~/.m2/repository).
  7. deploy — публикация артефакта в удаленный корпоративный репозиторий.

› Архитектура Gradle

Gradle использует модель выполнения задач (Tasks), организованных в ориентированный ациклический граф (DAG — Directed Acyclic Graph).

Этапы работы движка Gradle:

  1. Initialization: парсинг settings.gradle(.kts), определение модульной структуры проекта.
  2. Configuration: выполнение кода сценариев сборки build.gradle(.kts), вычисление и построение графа задач.
  3. Execution: выполнение выбранных задач в соответствии с зависимостями построенного графа.

› Преимущества Gradle и механизмы их реализации

Производительность:

  • Инкрементальная сборка (Incremental Build): механизм валидации входных (Inputs) и выходных (Outputs) данных задач. Неизмененные задачи пропускаются со статусом UP-TO-DATE.
  • Кэш сборки (Build Cache): сохранение и переиспользование результатов задач на уровне локальной файловой системы или распределенного сетевого хранилища.
  • Gradle Daemon: постоянно активный фоновый процесс JVM, нивелирующий накладные расходы на инициализацию виртуальной машины при повторных запусках.
  • Параллельное исполнение: автоматическое распределение независимых веток графа задач (DAG) по доступным ядрам процессора.

Гибкость:

  • Domain Specific Language (DSL): использование полноценных языков программирования (Kotlin DSL / Groovy DSL) вместо декларативного XML позволяет реализовывать сложную логику сборки без разработки сторонних плагинов.

Ссылаются сюда 1

main48 заметок324 слов2 мин чтения