Navigate:
Spring Initializr
~$SPRI0.1%

Spring Initializr: JVM project generation API

Extensible API for generating JVM projects with multi-language and build system support.

LIVE RANKINGS • 12:18 PM • STEADY
OVERALL
#377
144
DEVELOPER TOOLS
#81
39
30 DAY RANKING TREND
ovr#377
·Devel#81
STARS
3.6K
FORKS
1.8K
7D STARS
+2
7D FORKS
+1
See Repo:
Share:

Learn more about Spring Initializr

Spring Initializr is a project generation framework that creates JVM-based applications through a configurable metadata model. The system provides abstractions for build systems (Maven, Gradle), programming languages (Java, Kotlin, Groovy), and includes hook-points for custom resource generation. It exposes web endpoints that serve project metadata and generate actual project archives based on specified configurations. The framework is commonly used to bootstrap Spring Boot applications but can be extended for other JVM project types.

Spring Initializr

1

Metadata-Driven Configuration

Uses a structured metadata model to define available dependencies, supported JVM versions, and platform configurations. This approach allows for centralized management of project generation options.

2

Modular Architecture

Consists of separate modules for core generation, web endpoints, metadata handling, and Spring Boot conventions. Each module can be used independently or replaced with custom implementations.

3

Multiple Interface Support

Provides web endpoints, command-line integration, and IDE plugins for project generation. Third-party clients can consume the metadata format to build custom interfaces.


package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

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

    @GetMapping("/")
    public String hello() {
        return "Hello World!";
    }

    @GetMapping("/health")
    public String health() {
        return "Application is running";
    }
}


vv0.23.0

Build tool updates and Spring Boot 4.x compatibility improvements

  • Use Gradle 9.3.0 for generated Spring Boot 4.x projects
  • Use Gradle 8.14.4 for generated projects
  • Add support for fixed ports in Docker Compose generation
  • Use Maven 3.9.12 for generated projects
  • Adapt to Spring Boot 4.0 changes regarding war deployments
vv0.22.0

Build tool updates and extensibility improvements with Gradle 6/7 support removal

  • Use Gradle 8.14.2 for generated projects
  • Use Maven 3.9.10 for generated projects
  • Use assignment to set repository url in Groovy Gradle builds
  • Add support for processing instructions (e.g. m2e) in plugin
  • Ignore maven-wrapper.jar by default
vv0.21.0

Build tool upgrades and customizable application properties support

  • Upgrade to Gradle Wrapper 8.8
  • Add API to configure Gradle extensions
  • Generate projects with Maven Wrapper 3.3.1
  • Update Maven Wrapper for generated projects to 3.9.6
  • Add support for customizable application properties


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers