Commits
Tarun Sukhani authored 1e00613b0e7
feat(gradle-plugin): import the BOMs of the library families framework/lib ships (PF-193)
Since PF-192 an application runs on the fork's copy of each library in
framework/lib, but a member of the same family that the fork does not
ship (mockwebserver3 beside okhttp-jvm, jackson-dataformat-csv beside
jackson-databind, netty-codec-dns beside the Netty codecs) still needs a
version, kept in step with the fork's family version by hand.
play1 { importFrameworkBoms = true }, opt-in, adds platform(<bom>) on
implementation for each family in FRAMEWORK_BOMS at the version
lib-coordinates.properties gives its anchor module: OkHttp, Okio,
Jackson, Netty, Micrometer, the Prometheus client, Log4j, Kotlin, Groovy,
JUnit, SLF4J, ASM, Bouncy Castle and Swagger. A family member is then
declared without a version. Each of these BOMs manages its own family
alone and exists on Maven Central at the version framework/lib ships;
hibernate-platform and jaxb-bom also pin other projects' libraries and
are left out. A family whose anchor the application manages gets no
BOM, since its version is then the application's. The plugin imports the
BOMs instead of publishing a platform of its own, which the
applications' repositories could not reach and which would have to be
published alongside the plugin.
Guarded by FrameworkBomsTest (TestKit), which also checks that every
anchor is still a module of the real lib-coordinates.properties.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>