spring-projects / spring-projects/spring-boot
Publish a Gradle version catalog for Spring Boot's own modules
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 81.5k
- Forks
- 42.7k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 65
Description
Gradle now supports version catalogs, which have the advantage of generating type-safe accessors to reference the dependencies, allowing, for example
testImplementation(libs.mockk)
with support for auto-completion.
Such version catalogs can be defined in the build itself, but can also be published and then consumed by other projects. Micronaut for example does that, allowing to do in the settings files
versionCatalogs {
create("mn") {
from("io.micronaut:micronaut-bom:3.3.0")
}
}
and then in the build files
dependencies {
implementation(mn.picocli)
}
Overriding versions from the imported catalog is supported too.
Publishing such a version catalog along with the Spring Boot BOM would be a nice feature, which would allow migrating away from the spring dependencies plugin, now that gradle seems to support its features (with version catalogs and with the platform plugin), and benefit from the additional advantage of type-safe accessors for dependencies.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the Gradle version-catalog documentation linked in the issue and Spring Boot's existing BOM publication setup. Determine how a catalog could be published alongside the BOM and consumed with version overrides; done means the published catalog exposes Spring Boot's modules and is usable by consuming Gradle builds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, spring-boot
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100