Navigate:
Spring Initializr
~$SPRI0.0%

Spring Initializr: JVM project generation API

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

LIVE RANKINGS • 06:28 AM • STEADY
OVERALL
#415
257
DEVELOPER TOOLS
#87
57
30 DAY RANKING TREND
ovr#415
·Devel#87
STARS
3.6K
FORKS
1.8K
7D STARS
+1
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.


# Generate a basic Spring Boot project with Maven
curl https://start.spring.io/starter.zip \
  -d dependencies=web,data-jpa \
  -d type=maven-project \
  -d language=java \
  -d bootVersion=3.1.0 \
  -d groupId=com.example \
  -d artifactId=demo \
  -d name=demo \
  -d packageName=com.example.demo \
  -o demo.zip

# Extract the generated project
unzip demo.zip


vv0.22.0

Thank you to all the contributors who worked on this release:

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

Thank you to all the contributors who worked on this release:

  • Upgrade to Gradle Wrapper 8.8 #1537
  • Add API to configure Gradle extensions #1530
  • Generate projects with Maven Wrapper 3.3.1 #1529
  • Update Maven Wrapper for generated projects to 3.9.6 #1523
  • Add support for customizable application properties #1516
vv0.20.1

Thank you to all the contributors who worked on this release:

  • Web endpoints should only accept GET or POST or both as appropriate #1456
  • Imports of a CodeBlock as an argument are not considered #1451
  • plugin assertions for the KotlinDsl should use " instead of ' #1448
  • Gradle 8 wrapper contributor has the same bean name as the Gradle 7 equivalent #1440
  • Upgrade to Gradle 8.2.1 #1449


[ EXPLORE MORE ]

Related Repositories

Discover similar tools and frameworks used by developers