create-spring-boot-java-project
github/awesome-copilot
Create Spring Boot Java Project Skeleton
...Expand allAbout create-spring-boot-java-project
The `create-spring-boot-java-project` skill is designed to automate the setup of a Spring Boot Java project skeleton, streamlining the initial stages of project development. By providing a ready-to-use template with essential configurations and dependencies, this skill reduces the manual effort involved in creating a new Spring Boot project from scratch. It ensures that the project is structured correctly and equipped with the necessary frameworks and tools for modern Java development, such as Docker and Docker Compose for containerized environments.
Key features of this skill include downloading a Spring Boot starter template with predefined dependencies, setting up Java 21 compatibility, and configuring core services like Redis, PostgreSQL, and MongoDB. It also incorporates SpringDoc for API documentation and additional testing frameworks like ArchUnit. The skill guides the user through unzipping the project, removing temporary files, updating `pom.xml` with extra dependencies, and configuring `application.properties` with connection and framework-specific settings. Moreover, it provides a Docker Compose setup to launch essential backend services quickly, ensuring a consistent development environment.
This skill is particularly useful for Java developers, DevOps engineers, and software teams who frequently start new Spring Boot projects. It is ideal for those looking to maintain consistency across multiple projects while minimizing setup time. It is also beneficial for educational purposes, enabling students or newcomers to quickly set up a complete Spring Boot project environment with modern development practices and integrated services.
FAQ
What software do I need to have installed to use this skill?
You need Java 21, Docker, and Docker Compose installed on your system to use this skill effectively.
Can I customize the project name and package name?
Yes, you can customize the project name by changing the `artifactId` and the package name by updating `packageName` in the template download configuration.
How do I update the Spring Boot version for the project?
You can change the `bootVersion` parameter in the template download command to specify a different Spring Boot version.
Are there any predefined dependencies included in the generated project?
Yes, the project includes dependencies like Lombok, web, JPA, PostgreSQL, Redis, MongoDB, validation, caching, and test containers. Additional dependencies like SpringDoc and ArchUnit are added manually in `pom.xml`.
Does this skill set up database services automatically?
Yes, it includes a `docker-compose.yaml` configuration to launch Redis, PostgreSQL, and MongoDB with default passwords and mapped ports.
Create Spring Boot Java project prompt
Please make sure you have the following software installed on your system:
- Java 21
- Docker
- Docker Compose
If you need to custom the project name, please change the
artifactIdand thepackageNamein download-spring-boot-project-templateIf you need to update the Spring Boot version, please change the
bootVersionin download-spring-boot-project-template
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.zipUnzip 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-uiandarchunit-junit5dependency intopom.xmlfile
<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.propertiesfile
# SpringDoc configurationsspringdoc.swagger-ui.doc-expansion=nonespringdoc.swagger-ui.operations-sorter=alphaspringdoc.swagger-ui.tags-sorter=alpha
- Insert Redis configurations into
application.propertiesfile
# Redis configurationsspring.data.redis.host=localhostspring.data.redis.port=6379spring.data.redis.password=rootroot
- Insert JPA configurations into
application.propertiesfile
# JPA configurationsspring.datasource.driver-class-name=org.postgresql.Driverspring.datasource.url=jdbc:postgresql://localhost:5432/postgresspring.datasource.username=postgresspring.datasource.password=rootrootspring.jpa.hibernate.ddl-auto=updatespring.jpa.show-sql=truespring.jpa.properties.hibernate.format_sql=true
- Insert MongoDB configurations into
application.propertiesfile
# MongoDB configurationsspring.data.mongodb.host=localhostspring.data.mongodb.port=27017spring.data.mongodb.authentication-database=adminspring.data.mongodb.username=rootspring.data.mongodb.password=rootrootspring.data.mongodb.database=test
Add docker-compose.yaml with Redis, PostgreSQL and MongoDB services
Create
docker-compose.yamlat project root and add following services:redis:6,postgresql:17andmongo:8.- redis service should have
- password
rootroot - mapping port 6379 to 6379
- mounting volume
./redis_datato/data
- password
- postgresql service should have
- password
rootroot - mapping port 5432 to 5432
- mounting volume
./postgres_datato/var/lib/postgresql/data
- password
- mongo service should have
- initdb root username
root - initdb root password
rootroot - mapping port 27017 to 27017
- mounting volume
./mongo_datato/data/db
- initdb root username
- redis service should have
Add .gitignore file
- Insert
redis_data,postgres_dataandmongo_datadirectories in.gitignorefile
Run Maven test command
- Run maven clean test command to check if the project is working
./mvnw clean testRun Maven run command (Optional)
- (Optional)
docker-compose up -dto start the services,./mvnw spring-boot:runto run the Spring Boot project,docker-compose rm -sfto stop the services.
Let's do this step by step
Install create-spring-boot-java-project
Download and extract the skill files to your .claude/skills/ directory.
Download ZIPClone the repository and copy the skill files to your project.
git clone https://github.com/github/awesome-copilot/blob/main/skills/create-spring-boot-java-project/SKILL.md # Copy SKILL.md to your .claude/skills/ directory
Copy





Home
