Skip to content

Fix predeclare from buildscript in gradle 9.x#2929

Open
bric3 wants to merge 3 commits into
diffplug:mainfrom
bric3:predeclare-from-buildscript-gradle-9.x
Open

Fix predeclare from buildscript in gradle 9.x#2929
bric3 wants to merge 3 commits into
diffplug:mainfrom
bric3:predeclare-from-buildscript-gradle-9.x

Conversation

@bric3
Copy link
Copy Markdown
Contributor

@bric3 bric3 commented May 13, 2026

Gradle 9 rejects mutating the root buildscript configuration container during task execution. This breaks predeclareDepsFromBuildscript() because Spotless resolved formatter dependencies by calling ConfigurationContainer.create(...) from :spotlessInternalRegisterDependencies.

This commit makes spotless resolve the formatter dependencies with a detached configurations instead.

They are not added to the target configuration container, so they avoid the Gradle 9 mutation guard while still using the repositories from the same configuration context.

Also adds a Gradle 9.5.1 integration test for the legacy predeclareDepsFromBuildscript() path.

https://docs.gradle.org/current/userguide/upgrading_version_8.html#mutating_buildscript_configurations

https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/ConfigurationContainer.html#detachedConfiguration-org.gradle.api.artifacts.Dependency...-

Fixes #2599

bric3 added 3 commits May 13, 2026 13:35
Gradle 9 rejects mutating the root `buildscript` configuration container
during task execution. This breaks `predeclareDepsFromBuildscript()`
because Spotless resolved formatter dependencies by calling
`ConfigurationContainer.create(...)` from
`:spotlessInternalRegisterDependencies`.

This commit makes spotless resolve the formatter dependencies with
a detached configurations instead.

They are not added to the target configuration container, so they avoid
the Gradle 9 mutation guard while still using the repositories from the
same configuration context.

Also adds a Gradle 9.5.1 integration test for the legacy
`predeclareDepsFromBuildscript()` path.

https://docs.gradle.org/current/userguide/upgrading_version_8.html#mutating_buildscript_configurations

https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/ConfigurationContainer.html#detachedConfiguration-org.gradle.api.artifacts.Dependency...-

Fixes diffplug#2599
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Gradle 9.0.0 incompatibility

1 participant