CR

create-spring-boot-java-project

Generate a Spring Boot project structure with pre-configured dependencies using the CLI.

Install

mkdir -p .claude/skills/create-spring-boot-java-project-wenfe && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/15118" && unzip -o skill.zip -d .claude/skills/create-spring-boot-java-project-wenfe && rm skill.zip

Installs to .claude/skills/create-spring-boot-java-project-wenfe

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Create Spring Boot Java Project Skeleton
40 charsno explicit “when” trigger
Beginner

Key capabilities

  • Download a Spring Boot project template
  • Unzip the downloaded project file
  • Add specific dependencies to pom.xml
  • Insert SpringDoc, Redis, JPA, and MongoDB configurations into application.properties
  • Create a docker-compose.yaml file with Redis, PostgreSQL, and MongoDB services
  • Run Maven clean test command

How it works

The skill downloads a Spring Boot project template from start.spring.io, unzips it, and then modifies the project files by adding dependencies and configurations.

Inputs & outputs

You give it
Project name (e.g., demo-java)
You get back
A configured Spring Boot project directory with dependencies and configurations

When to use create-spring-boot-java-project

  • Create new Spring Boot project
  • Bootstrap microservice structure
  • Add standard Java dependencies

About this skill

Create Spring Boot Java project prompt

Check Java version

  • Run following command in terminal and check the version of Java
java -version

Download Spring Boot project template

  • Run following command in terminal to download a Spring Boot project template
curl https://start.spring.io/starter.zip \
  -d artifactId=${input:projectName:demo-java} \
  -d bootVersion=3.4.5 \
  -d dependencies=lombok,configuration-processor,web,data-jpa,postgresql,data-redis,data-mongodb,validation,cache,testcontainers \
  -d javaVersion=21 \
  -d packageName=com.example \
  -d packaging=jar \
  -d type=maven-project \
  -o starter.zip

Unzip the downloaded file

  • Run following command in terminal to unzip the downloaded file
unzip starter.zip -d ./${input:projectName:demo-java}

Remove the downloaded zip file

  • Run following command in terminal to delete the downloaded zip file
rm -f starter.zip

Change directory to the project root

  • Run following command in terminal to change directory to the project root
cd ${input:projectName:demo-java}

Add additional dependencies

  • Insert springdoc-openapi-starter-webmvc-ui and archunit-junit5 dependency into pom.xml file
<dependency>
  <groupId>org.springdoc</groupId>
  <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
  <version>2.8.6</version>
</dependency>
<dependency>
  <groupId>com.tngtech.archunit</groupId>
  <artifactId>archunit-junit5</artifactId>
  <version>1.2.1</version>
  <scope>test</scope>
</dependency>

Add SpringDoc, Redis, JPA and MongoDB configurations

  • Insert SpringDoc configurations into application.properties file
# SpringDoc configurations
springdoc.swagger-ui.doc-expansion=none
springdoc.swagger-ui.operations-sorter=alpha
springdoc.swagger-ui.tags-sorter=alpha
  • Insert Redis configurations into application.properties file
# Redis configurations
spring.data.redis.host=localhost
spring.data.redis.port=6379
spring.data.redis.password=rootroot
  • Insert JPA configurations into application.properties file
# JPA configurations
spring.datasource.driver-class-name=org.postgresql.Driver
spring.datasource.url=jdbc:postgresql://localhost:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=rootroot
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.format_sql=true
  • Insert MongoDB configurations into application.properties file
# MongoDB configurations
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.username=root
spring.data.mongodb.password=rootroot
spring.data.mongodb.database=test

Add docker-compose.yaml with Redis, PostgreSQL and MongoDB services

  • Create docker-compose.yaml at project root and add following services: redis:6, postgresql:17 and mongo:8.

    • redis service should have
      • password rootroot
      • mapping port 6379 to 6379
      • mounting volume ./redis_data to /data
    • postgresql service should have
      • password rootroot
      • mapping port 5432 to 5432
      • mounting volume ./postgres_data to /var/lib/postgresql/data
    • mongo service should have
      • initdb root username root
      • initdb root password rootroot
      • mapping port 27017 to 27017
      • mounting volume ./mongo_data to /data/db

Add .gitignore file

  • Insert redis_data, postgres_data and mongo_data directories in .gitignore file

Run Maven test command

  • Run maven clean test command to check if the project is working
./mvnw clean test

Run Maven run command (Optional)

  • (Optional) docker-compose up -d to start the services, ./mvnw spring-boot:run to run the Spring Boot project, docker-compose rm -sf to stop the services.

Let's do this step by step

When not to use it

  • When the project name, artifactId, or packageName should not be customized
  • When the Spring Boot version should not be updated
  • When specific dependencies like lombok, data-jpa, or validation are not needed

Prerequisites

Java 21DockerDocker Compose

Limitations

  • The skill only supports Java 21 for the project
  • The skill uses a fixed set of dependencies for the project template
  • The skill uses predefined configurations for SpringDoc, Redis, JPA, and MongoDB

How it compares

This workflow automates the setup of a Spring Boot project with common configurations and dependencies, unlike manually downloading, unzipping, and configuring each component.

Compared to similar skills

create-spring-boot-java-project side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
create-spring-boot-java-project (this skill)01moReviewBeginner
minecraft-bukkit-pro904moNo flagsAdvanced
java-coding-standards164moNo flagsIntermediate
generating-rest-apis01moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

minecraft-bukkit-pro

sickn33

Master Minecraft server plugin development with Bukkit, Spigot, and Paper APIs. Specializes in event-driven architecture, command systems, world manipulation, player management, and performance optimization. Use PROACTIVELY for plugin architecture, gameplay mechanics, server-side features, or cross-version compatibility.

9078

java-coding-standards

affaan-m

Java coding standards for Spring Boot services: naming, immutability, Optional usage, streams, exceptions, generics, and project layout.

1669

generating-rest-apis

jeremylongshore

Generate complete REST API implementations from OpenAPI specifications or database schemas. Use when generating RESTful API implementations. Trigger with phrases like "generate REST API", "create RESTful API", or "build REST endpoints".

02

java-springboot

carlosroco

Genera la estructura completa de un microservicio Java Spring Boot 3.x con Maven. Úsalo cuando necesites crear el proyecto base (pom.xml, clase principal), la capa de servicio (interfaz + implementación) o el controlador REST.

00

workflow-orchestration-patterns

wshobson

Design durable workflows with Temporal for distributed systems. Covers workflow vs activity separation, saga patterns, state management, and determinism constraints. Use when building long-running processes, distributed transactions, or microservice orchestration.

10117

java-pro

sickn33

Master Java 21+ with modern features like virtual threads, pattern matching, and Spring Boot 3.x. Expert in the latest Java ecosystem including GraalVM, Project Loom, and cloud-native patterns. Use PROACTIVELY for Java development, microservices architecture, or performance optimization.

3492

Search skills

Search the agent skills registry