← Notas de desarrollo

Crear y probar un proyecto Gradle con Spring Initializr

En esta página

Tras crear un proyecto con Spring Initializr, pruébalo con el Gradle Wrapper generado antes de depender del IDE. Trata la generación, resolución de dependencias, compatibilidad del JDK y arranque como comprobaciones separadas para localizar mejor los fallos.

Este ejemplo usa un proyecto Gradle Groovy con Boot 4.1.2 y Java 17, generado realmente por start.spring.io el 27 de octubre de 2026. Su Wrapper seleccionó Gradle 9.8.2. Los valores predeterminados y versiones disponibles del servicio cambian; no supongas que esta combinación seguirá disponible indefinidamente.

Flujo de procesamiento

Flujo de generación, inspección y pruebas

Genera el archivo completo antes de ejecutar su Wrapper. Una prueba de contexto y una aplicación HTTP ejecutada por separado demuestran cosas diferentes.

Elegir la configuración del proyecto

Ajuste Ejemplo Significado
Project / Language Gradle - Groovy / Java Herramientas de compilación y lenguaje fuente
Spring Boot 4.1.2 Versión final disponible al generar este ejemplo
Java / Packaging 17 / Jar Herramientas del código fuente y empaquetado
Group / Artifact example / demo Identificadores del proyecto
Package name example.demo Paquete de la aplicación
Dependencies Spring Web Dependencias de un endpoint HTTP

Pulsa Generate en la interfaz o descarga el archivo con esta URL. Confirma que cada comando termina correctamente antes de ejecutar el siguiente. Usa un directorio vacío para evitar sobrescribir un proyecto existente.

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

La API de generación puede rechazar una versión cuando el servicio deje de ofrecerla. Consulta los metadatos actuales del servicio y la referencia de Initializr, y selecciona versiones compatibles de Boot, JDK y Gradle conjuntamente. Sustituir silenciosamente el ejemplo por los últimos valores predeterminados cambia sus condiciones de reproducción.

Inspeccionar cuatro archivos principales generados

Estos son los cuatro archivos principales con formato simplificado. El archivo completo también incluye scripts, JAR y ajustes del Wrapper y archivos de recursos. Copiar solo estos cuatro archivos en un directorio vacío no crea ./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() {}
}

El proyecto Boot 4.1.2 generado usa spring-boot-starter-webmvc y spring-boot-starter-webmvc-test. Parte de la configuración generada para la versión elegida en lugar de mezclar fragmentos de distintas generaciones de Boot. Los requisitos de Boot 4.1.2 especifican Java 17 o posterior y Gradle 8.x desde 8.14, o 9.x.

Distinguir pruebas y arranque de la aplicación

Que contextLoads() pase significa que arranca el contexto de pruebas. Sin controlador todavía, una respuesta 404 de / no indica un fallo de arranque. Ejecuta la aplicación por separado y detenla con Ctrl+C en ese terminal.

./gradlew bootRun

Registra juntos el build.gradle generado y los archivos de Gradle Wrapper. La versión de Gradle es independiente de la versión Java en java.toolchain. Usa ./gradlew --version para inspeccionar la JVM que ejecuta Gradle y distinguirla del JDK elegido para compilar y ejecutar la aplicación.

Continúa con abrir el proyecto en IntelliJ y servir HTTP. Consulta el historial de Spring Boot y las relaciones entre versiones para entender por qué Boot y Framework tienen números de versión distintos.

Comentarios

Ver en GitHub ↗