{"id":"6b4b2ef6-971b-45d0-acc1-29ac1a5c7df7","shortId":"DEdHDW","kind":"skill","title":"Create Spring Boot Java Project","tagline":"Awesome Copilot skill by Github","description":"# Create Spring Boot Java project prompt\n\n- Please make sure you have the following software installed on your system:\n\n  - Java 21\n  - Docker\n  - Docker Compose\n\n- If you need to custom the project name, please change the `artifactId` and the `packageName` in [download-spring-boot-project-template](./create-spring-boot-java-project.prompt.md#download-spring-boot-project-template)\n\n- If you need to update the Spring Boot version, please change the `bootVersion` in [download-spring-boot-project-template](./create-spring-boot-java-project.prompt.md#download-spring-boot-project-template)\n\n## Check Java version\n\n- Run following command in terminal and check the version of Java\n\n```shell\njava -version\n```\n\n## Download Spring Boot project template\n\n- Run following command in terminal to download a Spring Boot project template\n\n```shell\ncurl https://start.spring.io/starter.zip \\\n  -d artifactId=${input:projectName:demo-java} \\\n  -d bootVersion=3.4.5 \\\n  -d dependencies=lombok,configuration-processor,web,data-jpa,postgresql,data-redis,data-mongodb,validation,cache,testcontainers \\\n  -d javaVersion=21 \\\n  -d packageName=com.example \\\n  -d packaging=jar \\\n  -d type=maven-project \\\n  -o starter.zip\n```\n\n## Unzip the downloaded file\n\n- Run following command in terminal to unzip the downloaded file\n\n```shell\nunzip starter.zip -d ./${input:projectName:demo-java}\n```\n\n## Remove the downloaded zip file\n\n- Run following command in terminal to delete the downloaded zip file\n\n```shell\nrm -f starter.zip\n```\n\n## Change directory to the project root\n\n- Run following command in terminal to change directory to the project root\n\n```shell\ncd ${input:projectName:demo-java}\n```\n\n## Add additional dependencies\n\n- Insert `springdoc-openapi-starter-webmvc-ui` and `archunit-junit5` dependency into `pom.xml` file\n\n```xml\n<dependency>\n  <groupId>org.springdoc</groupId>\n  <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>\n  <version>2.8.6</version>\n</dependency>\n<dependency>\n  <groupId>com.tngtech.archunit</groupId>\n  <artifactId>archunit-junit5</artifactId>\n  <version>1.2.1</version>\n  <scope>test</scope>\n</dependency>\n```\n\n## Add SpringDoc, Redis, JPA and MongoDB configurations\n\n- Insert SpringDoc configurations into `application.properties` file\n\n```properties\n# SpringDoc configurations\nspringdoc.swagger-ui.doc-expansion=none\nspringdoc.swagger-ui.operations-sorter=alpha\nspringdoc.swagger-ui.tags-sorter=alpha\n```\n\n- Insert Redis configurations into `application.properties` file\n\n```properties\n# Redis configurations\nspring.data.redis.host=localhost\nspring.data.redis.port=6379\nspring.data.redis.password=rootroot\n```\n\n- Insert JPA configurations into `application.properties` file\n\n```properties\n# JPA configurations\nspring.datasource.driver-class-name=org.postgresql.Driver\nspring.datasource.url=jdbc:postgresql://localhost:5432/postgres\nspring.datasource.username=postgres\nspring.datasource.password=rootroot\nspring.jpa.hibernate.ddl-auto=update\nspring.jpa.show-sql=true\nspring.jpa.properties.hibernate.format_sql=true\n```\n\n- Insert MongoDB configurations into `application.properties` file\n\n```properties\n# MongoDB configurations\nspring.data.mongodb.host=localhost\nspring.data.mongodb.port=27017\nspring.data.mongodb.authentication-database=admin\nspring.data.mongodb.username=root\nspring.data.mongodb.password=rootroot\nspring.data.mongodb.database=test\n```\n\n## Add `docker-compose.yaml` with Redis, PostgreSQL and MongoDB services\n\n- Create `docker-compose.yaml` at project root and add following services: `redis:6`, `postgresql:17` and `mongo:8`.\n\n  - redis service should have\n    - password `rootroot`\n    - mapping port 6379 to 6379\n    - mounting volume `./redis_data` to `/data`\n  - postgresql service should have\n    - password `rootroot`\n    - mapping port 5432 to 5432\n    - mounting volume `./postgres_data` to `/var/lib/postgresql/data`\n  - mongo service should have\n    - initdb root username `root`\n    - initdb root password `rootroot`\n    - mapping port 27017 to 27017\n    - mounting volume `./mongo_data` to `/data/db`\n\n## Add `.gitignore` file\n\n- Insert `redis_data`, `postgres_data` and `mongo_data` directories in `.gitignore` file\n\n## Run Maven test command\n\n- Run maven clean test command to check if the project is working\n\n```shell\n./mvnw clean test\n```\n\n## Run Maven run command (Optional)\n\n- (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.\n\n## Let's do this step by step","tags":["create","spring","boot","java","project","awesome","copilot","github"],"capabilities":["skill","source-github","category-awesome-copilot"],"categories":["awesome-copilot"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/github/awesome-copilot/create-spring-boot-java-project","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"install_from":"skills.sh"}},"qualityScore":"0.300","qualityRationale":"deterministic score 0.30 from registry signals: · indexed on skills.sh · published under github/awesome-copilot","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T14:40:17.363Z","embedding":null,"createdAt":"2026-04-18T20:25:46.861Z","updatedAt":"2026-04-22T14:40:17.363Z","lastSeenAt":"2026-04-22T14:40:17.363Z","tsv":"'/create-spring-boot-java-project.prompt.md':56,83 '/data':408 '/data/db':446 '/mongo_data':444 '/mvnw':479,497 '/postgres_data':422 '/redis_data':406 '/starter.zip':128 '/var/lib/postgresql/data':424 '1.2.1':274 '17':389 '2.8.6':269 '21':30,161 '27017':359,439,441 '3.4.5':138 '5432':417,419 '5432/postgres':333 '6':387 '6379':313,401,403 '8':392 'add':243,276,369,383,447 'addit':244 'admin':362 'alpha':297,300 'application.properties':287,305,320,351 'archunit':255,272 'archunit-junit5':254,271 'artifactid':45,130 'auto':339 'awesom':6 'boot':3,13,53,60,70,80,87,109,121,500,506 'bootvers':75,137 'cach':157 'category-awesome-copilot' 'cd':237 'chang':43,73,218,230 'check':90,99,472 'class':327 'class-nam':326 'clean':468,480 'com.example':164 'com.tngtech.archunit':270 'command':95,114,181,205,226,465,470,485 'compos':33,490,510 'configur':143,282,285,291,303,309,318,324,349,355 'configuration-processor':142 'copilot':7 'creat':1,11,377 'curl':125 'custom':38 'd':129,136,139,159,162,165,168,192,492 'data':147,151,154,452,454,457 'data-jpa':146 'data-mongodb':153 'data-redi':150 'databas':361 'delet':209 'demo':134,196,241 'demo-java':133,195,240 'depend':140,245,257 'directori':219,231,458 'docker':31,32,489,509 'docker-compos':488,508 'docker-compose.yaml':370,378 'download':51,58,78,85,107,118,177,187,200,211 'download-spring-boot-project-templ':50,57,77,84 'expans':293 'f':216 'file':178,188,202,213,260,288,306,321,352,449,461 'follow':23,94,113,180,204,225,384 'github':10 'gitignor':448,460 'initdb':429,433 'input':131,193,238 'insert':246,283,301,316,347,450 'instal':25 'jar':167 'java':4,14,29,91,103,105,135,197,242 'javavers':160 'jdbc':331 'jpa':148,279,317,323 'junit5':256,273 'let':517 'localhost':311,332,357 'lombok':141 'make':18 'map':399,415,437 'maven':171,463,467,483 'maven-project':170 'mongo':391,425,456 'mongodb':155,281,348,354,375 'mount':404,420,442 'name':41,328 'need':36,65 'none':294 'o':173 'openapi':249,265 'option':486,487 'org.postgresql.driver':329 'org.springdoc':262 'packag':166 'packagenam':48,163 'password':397,413,435 'pleas':17,42,72 'pom.xml':259 'port':400,416,438 'postgr':335,453 'postgresql':149,373,388,409 'processor':144 'project':5,15,40,54,61,81,88,110,122,172,222,234,380,475,507 'projectnam':132,194,239 'prompt':16 'properti':289,307,322,353 'redi':152,278,302,308,372,386,393,451 'remov':198 'rm':215,511 'root':223,235,364,381,430,432,434 'rootroot':315,337,366,398,414,436 'run':93,112,179,203,224,462,466,482,484,501,503 'servic':376,385,394,410,426,496,516 'sf':512 'shell':104,124,189,214,236,478 'skill':8 'softwar':24 'sorter':296,299 'source-github' 'spring':2,12,52,59,69,79,86,108,120,499,505 'spring-boot':498 'spring.data.mongodb.authentication':360 'spring.data.mongodb.database':367 'spring.data.mongodb.host':356 'spring.data.mongodb.password':365 'spring.data.mongodb.port':358 'spring.data.mongodb.username':363 'spring.data.redis.host':310 'spring.data.redis.password':314 'spring.data.redis.port':312 'spring.datasource.driver':325 'spring.datasource.password':336 'spring.datasource.url':330 'spring.datasource.username':334 'spring.jpa.hibernate.ddl':338 'spring.jpa.properties.hibernate.format':344 'spring.jpa.show':341 'springdoc':248,264,277,284,290 'springdoc-openapi-starter-webmvc-ui':247,263 'springdoc.swagger-ui.doc':292 'springdoc.swagger-ui.operations':295 'springdoc.swagger-ui.tags':298 'sql':342,345 'start':494 'start.spring.io':127 'start.spring.io/starter.zip':126 'starter':250,266 'starter.zip':174,191,217 'step':521,523 'stop':514 'sure':19 'system':28 'templat':55,62,82,89,111,123 'termin':97,116,183,207,228 'test':275,368,464,469,481 'testcontain':158 'true':343,346 'type':169 'ui':252,268 'unzip':175,185,190 'updat':67,340 'usernam':431 'valid':156 'version':71,92,101,106 'volum':405,421,443 'web':145 'webmvc':251,267 'work':477 'xml':261 'zip':201,212","prices":[{"id":"aec65b79-e116-41cc-9ce3-db60b9ebcf6f","listingId":"6b4b2ef6-971b-45d0-acc1-29ac1a5c7df7","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"github","category":"awesome-copilot","install_from":"skills.sh"},"createdAt":"2026-04-18T20:25:46.861Z"}],"sources":[{"listingId":"6b4b2ef6-971b-45d0-acc1-29ac1a5c7df7","source":"github","sourceId":"github/awesome-copilot/create-spring-boot-java-project","sourceUrl":"https://github.com/github/awesome-copilot/tree/main/skills/create-spring-boot-java-project","isPrimary":false,"firstSeenAt":"2026-04-18T21:48:54.021Z","lastSeenAt":"2026-04-22T12:52:09.740Z"},{"listingId":"6b4b2ef6-971b-45d0-acc1-29ac1a5c7df7","source":"skills_sh","sourceId":"github/awesome-copilot/create-spring-boot-java-project","sourceUrl":"https://skills.sh/github/awesome-copilot/create-spring-boot-java-project","isPrimary":true,"firstSeenAt":"2026-04-18T20:25:46.861Z","lastSeenAt":"2026-04-22T14:40:17.363Z"}],"details":{"listingId":"6b4b2ef6-971b-45d0-acc1-29ac1a5c7df7","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"github","slug":"create-spring-boot-java-project","source":"skills_sh","category":"awesome-copilot","skills_sh_url":"https://skills.sh/github/awesome-copilot/create-spring-boot-java-project"},"updatedAt":"2026-04-22T14:40:17.363Z"}}