Hi,
while upgrading to Gradle 9.8.0 I get the those warnings multiple times - Gradle 9.7.1 does not complain though:
The dependency resolution engine wasn't able to find a version of module org.apache.tomcat.embed:tomcat-embed-core which satisfied all requirements because the graph wasn't stable enough. The highest version was selected in order to stabilize selection.
Features available in a stable graph like version alignment are not guaranteed in this case.
The dependency resolution engine wasn't able to find a version of module org.apache.tomcat.embed:tomcat-embed-el which satisfied all requirements because the graph wasn't stable enough. The highest version was selected in order to stabilize selection.
Features available in a stable graph like version alignment are not guaranteed in this case.
The dependency resolution engine wasn't able to find a version of module org.apache.tomcat.embed:tomcat-embed-websocket which satisfied all requirements because the graph wasn't stable enough. The highest version was selected in order to stabilize selection.
Features available in a stable graph like version alignment are not guaranteed in this case.
I am using a virtual platform to align / change my tomcat versions like this (which is brought transitively as a dependency):
// https://docs.gradle.org/current/userguide/dependency_version_alignment.html#sec:virtual_platform
abstract class TomcatAlignmentRule : ComponentMetadataRule {
override fun execute(ctx: ComponentMetadataContext) {
ctx.details.run {
if (id.group.startsWith("org.apache.tomcat.embed")) {
belongsTo("org.apache.tomcat.embed:tomcat-virtual-platform:${id.version}")
}
}
}
}
And using the rule and platform like this:
val tomcatVersion = providers.gradleProperty("tomcat_version").get()
dependencies {
constraints {
implementation(enforcedPlatform("org.apache.tomcat.embed:tomcat-virtual-platform:$tomcatVersion"))
runtimeOnly(enforcedPlatform("org.apache.tomcat.embed:tomcat-virtual-platform:$tomcatVersion"))
}
components.all<TomcatAlignmentRule>()
}
This alignment worked since 03/2025, yet Gradle 9.8.0 seems to be unhappy about that now.
Question - is this a regression / bug or did Gradle fix something which now is going to surface as that warning?
Reading about the virtual platform in the docs it seems nothing changed there - anyone have a pointer where to look for and how to either fix that or maybe report it?
PS: I am still working on a small reproducer, will add it asap.