Closed
Description
As of its 5.3 version, Gradle is able to generate and consume Gradle-specific build metadata. It's an opt-in feature for now, but it will be enabled by default with Gradle 6.0.
Should we produce and publish this metadata for our 5.2.0 release?
Here is the module.json
file published for spring-webflux
:
{
"formatVersion": "1.0",
"component": {
"group": "org.springframework",
"module": "spring-webflux",
"version": "5.2.0.BUILD-SNAPSHOT",
"attributes": {
"org.gradle.status": "integration"
}
},
"createdBy": {
"gradle": {
"version": "5.6",
"buildId": "tnw2jjpho5a5jfyvqcxsiinl3u"
}
},
"variants": [
{
"name": "apiElements",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.jvm.version": 8,
"org.gradle.libraryelements": "jar",
"org.gradle.usage": "java-api",
"org.jetbrains.kotlin.localToProject": "public",
"org.jetbrains.kotlin.platform.type": "jvm"
},
"dependencies": [
{
"group": "org.springframework",
"module": "spring-beans",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-core",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-web",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "io.projectreactor",
"module": "reactor-core",
"version": {
"requires": "3.3.0.M3"
}
}
],
"files": [
{
"name": "spring-webflux-5.2.0.BUILD-SNAPSHOT.jar",
"url": "spring-webflux-5.2.0.BUILD-SNAPSHOT.jar",
"size": 812464,
"sha1": "2ba63ce11e96bccd35154fdc683101bd3414bc56",
"md5": "7ed44177912810577066d4e262f8273d"
}
]
},
{
"name": "runtimeElements",
"attributes": {
"org.gradle.category": "library",
"org.gradle.dependency.bundling": "external",
"org.gradle.jvm.version": 8,
"org.gradle.libraryelements": "jar",
"org.gradle.usage": "java-runtime",
"org.jetbrains.kotlin.localToProject": "public",
"org.jetbrains.kotlin.platform.type": "jvm"
},
"dependencies": [
{
"group": "org.springframework",
"module": "spring-beans",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-core",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-web",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "io.projectreactor",
"module": "reactor-core",
"version": {
"requires": "3.3.0.M3"
}
}
],
"files": [
{
"name": "spring-webflux-5.2.0.BUILD-SNAPSHOT.jar",
"url": "spring-webflux-5.2.0.BUILD-SNAPSHOT.jar",
"size": 812464,
"sha1": "2ba63ce11e96bccd35154fdc683101bd3414bc56",
"md5": "7ed44177912810577066d4e262f8273d"
}
]
}
]
}
Here is the module.json
file for our Java Platform (also exported as a Maven BOM):
{
"formatVersion": "1.0",
"component": {
"group": "org.springframework",
"module": "spring-framework-bom",
"version": "5.2.0.BUILD-SNAPSHOT",
"attributes": {
"org.gradle.status": "integration"
}
},
"createdBy": {
"gradle": {
"version": "5.6",
"buildId": "536e76sdo5cndbduo2qqzgbcja"
}
},
"variants": [
{
"name": "apiElements",
"attributes": {
"org.gradle.category": "platform",
"org.gradle.usage": "java-api"
},
"dependencyConstraints": [
{
"group": "org.springframework",
"module": "spring-aop",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-aspects",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-beans",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-context",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-context-indexer",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-context-support",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-core",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-expression",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-instrument",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-jcl",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-jdbc",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-jms",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-messaging",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-orm",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-oxm",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-test",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-tx",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-web",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-webflux",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-webmvc",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-websocket",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
}
]
},
{
"name": "runtimeElements",
"attributes": {
"org.gradle.category": "platform",
"org.gradle.usage": "java-runtime"
},
"dependencyConstraints": [
{
"group": "org.springframework",
"module": "spring-aop",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-aspects",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-beans",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-context",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-context-indexer",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-context-support",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-core",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-expression",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-instrument",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-jcl",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-jdbc",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-jms",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-messaging",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-orm",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-oxm",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-test",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-tx",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-web",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-webflux",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-webmvc",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
},
{
"group": "org.springframework",
"module": "spring-websocket",
"version": {
"requires": "5.2.0.BUILD-SNAPSHOT"
}
}
]
}
]
}
Note that all the generated POMs are slightly changed with the following:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- This module was also published with a richer model, Gradle metadata, -->
<!-- which should be used instead. Do not delete the following line which -->
<!-- is to indicate to Gradle or any Gradle module metadata file consumer -->
<!-- that they should prefer consuming it instead. -->
<!-- do-not-remove: published-with-gradle-metadata -->
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>