Перейти к основному содержимому

Gradle — практический старт

Разработчику Архитектору

Gradle

Gradle — вторая по популярности система сборки Java (наряду с Maven). Spring Boot, Android и многие корпоративные репозитории используют Gradle за гибкость и скорость инкрементальных сборок.


Maven vs Gradle (кратко)

MavenGradle
Конфигpom.xml (XML)build.gradle.kts (Kotlin DSL) или Groovy
МодельФиксированные фазы lifecycleГраф задач (tasks)
КэшЛокальный .m2Build cache, configuration cache
Типичный стартmvn archetype:generategradle init

Оба публикуют артефакты в Maven Central с теми же координатами group:artifact:version.


Новый Java-проект

mkdir demo-gradle && cd demo-gradle
gradle init

Выберите: application, Java 17+, Kotlin DSL, JUnit 5.

Структура:

demo-gradle/
build.gradle.kts
settings.gradle.kts
gradle/wrapper/ # gradlew — фиксирует версию Gradle
src/main/java/
src/test/java/

build.gradle.kts (минимум)

plugins {
java
application
}

group = "com.example"
version = "1.0.0"

repositories {
mavenCentral()
}

dependencies {
implementation("org.springframework.boot:spring-boot-starter-web:3.2.5")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}

application {
mainClass.set("com.example.App")
}

tasks.test {
useJUnitPlatform()
}

Основные команды

./gradlew build # компиляция + тесты + jar
./gradlew test # только тесты
./gradlew bootRun # если подключён Spring Boot plugin
./gradlew dependencies # дерево зависимостей
./gradlew clean

На Windows: gradlew.bat вместо ./gradlew.


Spring Boot с Gradle

plugins block:

plugins {
id("org.springframework.boot") version "3.2.5"
id("io.spring.dependency-management") version "1.1.4"
java
}

Зависимости без версий (управляются BOM):

dependencies {
implementation("org.springframework.boot:spring-boot-starter-web")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}

Старт: ./gradlew bootRun.


Multi-module (обзор)

settings.gradle.kts:

rootProject.name = "my-platform"
include("api", "core", "infra")

Каждый подпроект — свой build.gradle.kts. Общие версии выносят в gradle/libs.versions.toml (Version Catalog).


Связанные материалы


См. также

Другие статьи этого же раздела в боковом меню (как на странице «О разделе»).