Ответ
Gradle выполняет последовательность задач (tasks), определенных в скрипте сборки (build.gradle или build.gradle.kts). Основные этапы и задачи:
- Инициализация (Initialization): Определяет, является ли проект частью мультипроектной сборки, и настраивает экземпляры
Project. - Конфигурация (Configuration): Выполняет скрипт сборки, конфигурирует задачи и зависимости между ними. Загружаются зависимости для конфигурации.
- Выполнение (Execution): Запускаются задачи, указанные в командной строке, и все от которых они зависят.
Ключевые задачи в жизненном цикле Java-проекта:
compileJava— компиляция исходного кода Java.processResources— копирование ресурсов в выходную директорию классов.classes— агрегирующая задача дляcompileJavaиprocessResources.testClasses— подготавливает классы для тестов.test— запускает модульные тесты (например, с использованием JUnit или TestNG).jar— собирает JAR-артефакт из скомпилированных классов и ресурсов.assemble— собирает все артефакты проекта (JAR, WAR и т.д.), но не запускает тесты.build— полная сборка проекта (assemble+test).clean— удаляет выходные директории сборки.
Пример для QA: В проекте с автотестами часто создают кастомные задачи, например, для запуска набора интеграционных тестов или генерации отчетов Allure.
// Пример build.gradle для Java-проекта с тестами
test {
useJUnitPlatform()
testLogging {
events "passed", "skipped", "failed"
}
}
// Задача для запуска API-тестов из отдельной директории
task apiTest(type: Test) {
description = 'Runs API tests.'
group = 'verification'
testClassesDirs = sourceSets.apiTest.output.classesDirs
classpath = sourceSets.apiTest.runtimeClasspath
}