← Заметки

Создание и проверка проекта Gradle через Spring Initializr

На этой странице

Создав проект через Spring Initializr, проверьте его сгенерированным Gradle Wrapper, прежде чем полагаться на IDE. Разделяйте генерацию, разрешение зависимостей, совместимость JDK и запуск приложения, чтобы проще находить причины ошибок.

Пример использует проект Boot 4.1.2, Java 17, Gradle Groovy, действительно сгенерированный start.spring.io 27 октября 2026 года. Его Wrapper выбрал Gradle 9.8.2. Настройки сервиса по умолчанию и доступные версии меняются; не считайте, что эта комбинация будет доступна всегда.

Порядок обработки

Процесс генерации, проверки файлов и тестирования

Сгенерируйте полный архив до запуска Wrapper. Контекстный тест и отдельно запущенное HTTP-приложение подтверждают разные вещи.

Выберите параметры проекта

Параметр Пример Значение
Project / Language Gradle - Groovy / Java Инструмент сборки и язык исходного кода
Spring Boot 4.1.2 Финальный выпуск, доступный при создании примера
Java / Packaging 17 / Jar Инструментарий исходного кода и упаковка
Group / Artifact example / demo Идентификаторы проекта
Package name example.demo Пакет приложения
Dependencies Spring Web Зависимости HTTP-эндпоинта

Нажмите Generate в интерфейсе или скачайте архив по этому URL. Убедитесь в успехе каждой команды до запуска следующей. Используйте пустой рабочий каталог, чтобы не перезаписать существующий проект.

curl --fail --show-error --location 'https://start.spring.io/starter.zip?type=gradle-project&language=java&bootVersion=4.1.2&baseDir=demo&groupId=example&artifactId=demo&name=Demo&packageName=example.demo&packaging=jar&javaVersion=17&dependencies=web' --output demo.zip
unzip demo.zip
cd demo
./gradlew --version
./gradlew test

API генерации может отклонить версию, когда сервис перестанет её предлагать. Проверьте актуальные метаданные сервиса и справочник Initializr, затем вместе выберите совместимые Boot, JDK и Gradle. Незаметная подмена примера последними настройками по умолчанию меняет условия воспроизведения.

Проверьте четыре основных сгенерированных файла

Это четыре основных файла с упрощённым форматированием. Полный архив также содержит скрипты Wrapper, JAR и настройки Wrapper и файлы ресурсов. Копирование только этих четырёх файлов в пустой каталог не создаёт ./gradlew.

settings.gradle

rootProject.name = 'demo'

build.gradle

plugins {
    id 'java'
    id 'org.springframework.boot' version '4.1.2'
    id 'io.spring.dependency-management' version '1.1.7'
}
group = 'example'
version = '0.0.1-SNAPSHOT'
java {
    toolchain { languageVersion = JavaLanguageVersion.of(17) }
}
repositories { mavenCentral() }
dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-webmvc'
    testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
tasks.named('test') { useJUnitPlatform() }

src/main/java/example/demo/DemoApplication.java

package example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

src/test/java/example/demo/DemoApplicationTests.java

package example.demo;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class DemoApplicationTests {
    @Test
    void contextLoads() {}
}

Сгенерированный проект Boot 4.1.2 использует spring-boot-starter-webmvc и spring-boot-starter-webmvc-test. Начинайте с конфигурации, созданной для выбранного выпуска, а не смешивайте фрагменты разных поколений Boot. Требования Boot 4.1.2 указывают Java 17 или новее и Gradle 8.x начиная с 8.14 либо 9.x.

Отличайте тесты от запуска приложения

Успешный contextLoads() означает, что тестовый контекст запускается. Пока контроллера нет, ответ 404 от / не свидетельствует об ошибке запуска. Запустите приложение отдельно и остановите его через Ctrl+C в том терминале.

./gradlew bootRun

Сохраните сгенерированный build.gradle и файлы Gradle Wrapper в одном коммите. Версия Gradle не совпадает по смыслу с версией Java в java.toolchain. Командой ./gradlew --version проверьте JVM, выполняющую Gradle, и отличайте её от JDK компиляции и запуска приложения.

Продолжите открытием проекта в IntelliJ и обслуживанием HTTP. О причинах разных номеров версий Boot и Framework см. историю выпусков Spring Boot и связи версий.

Обсуждение

Посмотреть на GitHub ↗