{"id":45915133,"url":"https://github.com/austinarbor/version-catalog-generator","last_synced_at":"2026-02-28T07:36:34.722Z","repository":{"id":188844451,"uuid":"679523691","full_name":"austinarbor/version-catalog-generator","owner":"austinarbor","description":"Gradle settings plugin to use any BOM as a fully typed version catalog","archived":false,"fork":false,"pushed_at":"2026-02-26T05:11:49.000Z","size":1666,"stargazers_count":44,"open_issues_count":4,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-02-26T09:38:59.814Z","etag":null,"topics":["bom","gradle","plugin","settings","version-catalog"],"latest_commit_sha":null,"homepage":"https://austinarbor.github.io/version-catalog-generator/","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/austinarbor.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"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}},"created_at":"2023-08-17T03:30:04.000Z","updated_at":"2026-02-16T16:33:30.000Z","dependencies_parsed_at":"2025-11-27T20:06:23.443Z","dependency_job_id":null,"html_url":"https://github.com/austinarbor/version-catalog-generator","commit_stats":null,"previous_names":["austinarbor/version-catalog-generator"],"tags_count":39,"template":false,"template_full_name":null,"purl":"pkg:github/austinarbor/version-catalog-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinarbor%2Fversion-catalog-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinarbor%2Fversion-catalog-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinarbor%2Fversion-catalog-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinarbor%2Fversion-catalog-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/austinarbor","download_url":"https://codeload.github.com/austinarbor/version-catalog-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinarbor%2Fversion-catalog-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29927623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["bom","gradle","plugin","settings","version-catalog"],"created_at":"2026-02-28T07:36:34.189Z","updated_at":"2026-02-28T07:36:34.714Z","avatar_url":"https://github.com/austinarbor.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Version Catalog Generator Plugin\n\nhttps://github.com/austinarbor/version-catalog-generator/actions/workflows/ci.yml[image:https://github.com/austinarbor/version-catalog-generator/actions/workflows/ci.yml/badge.svg[ci]] https://codecov.io/gh/austinarbor/version-catalog-generator[image:https://codecov.io/gh/austinarbor/version-catalog-generator/graph/badge.svg?token=IO5UCDD5A0[codecov]] https://plugins.gradle.org/plugin/dev.aga.gradle.version-catalog-generator[image:https://staging.shields.io/gradle-plugin-portal/v/dev.aga.gradle.version-catalog-generator?label=Gradle%20Plugin%20Portal[Gradle Plugin Portal]]\n\n:version: 4.0.0\n:icons: font\n\n\nEasily use any BOM as a https://docs.gradle.org/current/userguide/platforms.html[Gradle Version Catalog].\n\n== Compatibility\n\n[%autowidth]\n|===\n|*Plugin Version*|*Gradle Version*\n|1.x\n|7.6.x\n|1.x, 2.x, 3.x\n|8.x\n|3.x\n|9.x\n|4.x\n|9.x\n|===\n\n\n== Quick Start\n\n_First, add your BOM dependencies to your version catalog_\n\n.libs.versions.toml\n[%collapsible%open]\n====\n[source,toml]\n----\n[versions]\nspring = \"3.2.0\"\naws = \"2.22.0\"\n\n[libraries]\nawsBom = { group = \"software.amazon.awssdk\", name = \"bom\", version.ref = \"aws\" }\nspringBootDependencies = { group = \"org.springframework.boot\", name = \"spring-boot-dependencies\", version.ref = \"spring\" }\n----\n====\n\n_Then, add the plugin to your settings with the catalogs you want to generate_\n\n.settings.gradle.kts\n[%collapsible%open]\n====\n[source,kotlin,subs=\"attributes+\"]\n----\nimport dev.aga.gradle.versioncatalogs.Generator.generate\n\nplugins {\n  id(\"dev.aga.gradle.version-catalog-generator\") version(\"{version}\")\n}\n\ndependencyResolutionManagement {\n  repositories {\n    mavenCentral() // \u003c1\u003e\n  }\n  versionCatalogs {\n    create(\"libs\") { // \u003c2\u003e\n      from(files(\"gradle/libs.versions.toml\"))\n    }\n    generate(\"libs\") { // \u003c3\u003e\n      fromToml(\"springBootDependencies\") { // \u003c4\u003e\n        propertyOverrides = mapOf(\n          \"jackson-bom.version\" to \"2.16.1\", // \u003c5\u003e\n          \"mockito.version\" to versionRef(\"mockito\"), // \u003c6\u003e\n        )\n        generateBomEntry = true // \u003c7\u003e\n      }\n    }\n    generate(\"awsLibs\") {\n      fromToml(\"awsBom\") {\n        aliasPrefixGenerator = GeneratorConfig.NO_PREFIX // \u003c8\u003e\n      }\n    }\n    generate(\"manyLibs\") {\n      using { // \u003c9\u003e\n        aliasPrefixGenerator = GeneratorConfig.NO_PREFIX\n      }\n      fromToml(\"aws-bom\", \"jackson-bom\") { // \u003c10\u003e\n        aliasSuffixGenerator = { prefix, groupId, artifactId -\u003e // \u003c11\u003e\n          val trimmed = artifactId.replaceFirst(\"junit-\", \"\").replaceFirst(\"jackson-\", \"\")\n          GeneratorConfig.DEFAULT_ALIAS_SUFFIX_GENERATOR(prefix, groupId, trimmed)\n        }\n      }\n      from(\"org.springframework.boot:spring-boot-dependencies:3.4.1\") { // \u003c12\u003e\n        aliasPrefixGenerator = GeneratorConfig.DEFAULT_ALIAS_PREFIX_GENERATOR // \u003c13\u003e\n      }\n    }\n  }\n}\n----\n\u003c1\u003e Must include repositories here for dependency resolution to work from settings\n\u003c2\u003e If you want to append to an existing catalog, you must declare it before using it in a generate block (even if it's the default `libs.versions.toml`)\n\u003c3\u003e The name of the generated catalog. If a catalog with that name already exists, the entries will be appended to it. Otherwise, a new catalog will be created.\n\u003c4\u003e The name of the bom library in the version catalog\n\u003c5\u003e Optionally override some version properties using a literal value\n\u003c6\u003e Or, you can reference version aliases in the source TOML\n\u003c7\u003e Optionally generate an entry in the catalog for the BOM itself\n\u003c8\u003e All dependencies in the AWS BOM are for AWS so we can skip the prefix\n\u003c9\u003e Set the default generation options that will apply to all sources unless overridden\n\u003c10\u003e Include all dependencies from both `aws-bom` and `jackson-bom`\n\u003c11\u003e Override the default `aliasSuffixGenerator` for dependencies in these two BOMs\n\u003c12\u003e Also include all dependencies from the `spring-boot-dependencies` BOM in the generated catalog\n\u003c13\u003e Override the default `aliasPrefixGenerator` for dependencies in the spring BOM\n====\n\n_Lastly, use the dependencies in your build_\n\n.build.gradle.kts\n[%collapsible%open]\n====\n[source,kotlin]\n----\ndependencies {\n  implementation(awsLibs.s3)\n  implementation(awsLibs.dynamodb)\n  implementation(libs.spring.springBootStarterWeb)\n  implementation(libs.jackson.jacksonDatabind)\n  implementation(manyLibs.sts)\n  implementation(manyLibs.databind)\n  implementation(manyLibs.spring.springBootStarterJdbc)\n}\n----\n====\n// tag::exclude-from-docs[]\n== Migrate to 4.x\nhttps://austinarbor.github.io/version-catalog-generator#_migrating_from_3_x_to_4_x[See guide]\n\n== Detailed Usage\nhttps://austinarbor.github.io/version-catalog-generator[See the docs]\n\n== Goals\n* [x] Compatible with Dependabot\n* [x] Nested BOM support (i.e. `spring-boot-dependences` imports `+mockito-bom+`, etc)\n* [x] Easy to override versions (similar to `ext[\"version.property\"] = ...` in Spring Boot Dependencies plugin)\n// end::exclude-from-docs[]\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustinarbor%2Fversion-catalog-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faustinarbor%2Fversion-catalog-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustinarbor%2Fversion-catalog-generator/lists"}