{"id":39127629,"url":"https://github.com/mrclrchtr/gradle-kotlin-spring","last_synced_at":"2026-01-17T21:02:28.567Z","repository":{"id":36517123,"uuid":"165827501","full_name":"mrclrchtr/gradle-kotlin-spring","owner":"mrclrchtr","description":"Multi-Project/Module example with Gradle, Kotlin and Spring with Kotlin DSL","archived":false,"fork":false,"pushed_at":"2026-01-01T20:42:40.000Z","size":741,"stargazers_count":148,"open_issues_count":6,"forks_count":30,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-03T08:40:15.545Z","etag":null,"topics":["build","buildsrc","gradle","gradle-build","gradle-buildsrc","gradle-kotlin-dsl","gradle-multi-project","gradle-wrapper","gradlew","kotlin","kotlin-dsl","spring-boot","springboot","tutorial"],"latest_commit_sha":null,"homepage":"https://mrclrchtr.de/gradle-5-mit-kotlin-dsl-in-multi-project-build/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrclrchtr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["mrclrchtr"],"patreon":null,"open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"mrclrchtr","thanks_dev":null,"custom":null}},"created_at":"2019-01-15T09:59:41.000Z","updated_at":"2026-01-01T13:00:22.000Z","dependencies_parsed_at":"2023-12-07T17:40:40.816Z","dependency_job_id":"6e82c3e6-7ded-4a55-86ed-bc55f9e6d542","html_url":"https://github.com/mrclrchtr/gradle-kotlin-spring","commit_stats":null,"previous_names":[],"tags_count":5,"template":true,"template_full_name":null,"purl":"pkg:github/mrclrchtr/gradle-kotlin-spring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrclrchtr%2Fgradle-kotlin-spring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrclrchtr%2Fgradle-kotlin-spring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrclrchtr%2Fgradle-kotlin-spring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrclrchtr%2Fgradle-kotlin-spring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrclrchtr","download_url":"https://codeload.github.com/mrclrchtr/gradle-kotlin-spring/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrclrchtr%2Fgradle-kotlin-spring/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28518608,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build","buildsrc","gradle","gradle-build","gradle-buildsrc","gradle-kotlin-dsl","gradle-multi-project","gradle-wrapper","gradlew","kotlin","kotlin-dsl","spring-boot","springboot","tutorial"],"created_at":"2026-01-17T21:02:27.951Z","updated_at":"2026-01-17T21:02:28.560Z","avatar_url":"https://github.com/mrclrchtr.png","language":"Kotlin","funding_links":["https://github.com/sponsors/mrclrchtr","https://buymeacoffee.com/mrclrchtr"],"categories":[],"sub_categories":[],"readme":"# Gradle, Kotlin, Spring Skeleton\n[![Run Gradle on PRs](https://github.com/mrclrchtr/gradle-kotlin-spring/actions/workflows/gradle-build-pr.yml/badge.svg)](https://github.com/mrclrchtr/gradle-kotlin-spring/actions/workflows/gradle-build-pr.yml)\n\nDo you already know how to set up a Gradle multi-project / multi-module with Kotlin DSL and Spring Dependency\nManagement?\n\nI have set up an example here, in which I have abstracted the most important logical components and packed them into\nindividual buildSrc modules. This makes the build very modular and also very clear. What do you think?\n\nIt has the following details:\n- Java `21`\n\u003c!-- renovate: datasource=gradle-version depName=gradle --\u003e\n- Gradle `8.4`\n  - buildSrc\n  - Kotlin DSL\n  - Version Catalog (libs.versions.toml)\n\u003c!-- renovate: datasource=maven depName=org.jetbrains.kotlin:kotlin-gradle-plugin --\u003e\n- Kotlin `2.2.0`\n\u003c!-- renovate: datasource=maven depName=org.springframework.boot:spring-boot-gradle-plugin --\u003e\n- Spring Boot `3.5.9`\n\u003c!-- renovate: datasource=maven depName=io.gitlab.arturbosch.detekt:detekt-gradle-plugin --\u003e\n- Detekt `1.23.8`\n\u003c!-- renovate: datasource=maven depName=org.jetbrains.dokka:dokka-gradle-plugin --\u003e\n- Dokka `2.0.0`\n\u003c!-- formatting comment --\u003e\n- Spring Dependency-Management\n\nAdditionally, I added a POC how Maven Publishing could work. In another project, I got it to work like this without\nSpring boot on Gitlab. Unfortunately, it doesn't work with the spring boot plugin in this example yet. But I think it can\nhelp others to reach their goals.\n\nIf there are any questions or suggestions for improvement, issues, discussions and PRs are welcome.\n\n## Run it!\n\nThe factory:\n```shell\n    ./gradlew :message-factory:bootRun\n```\n\nThe Dashboard:\n```shell\n    ./gradlew :message-dashboard:bootRun\n```\n\nAnd now visit \u003chttp://localhost:8080/dashboard/Mr.Bean\u003e\n\nYou can enter every name in place of \"Mr.Bean\".\n\n# GitHub Actions\n\nIf you want to use the action, you have to set a GRADLE_ENCRYPTION_KEY as secret in your repository:\nhttps://docs.gradle.org/8.6/userguide/configuration_cache.html#config_cache:secrets:configuring_encryption_key\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrclrchtr%2Fgradle-kotlin-spring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrclrchtr%2Fgradle-kotlin-spring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrclrchtr%2Fgradle-kotlin-spring/lists"}