Skip to content
This repository was archived by the owner on Oct 11, 2025. It is now read-only.
This repository was archived by the owner on Oct 11, 2025. It is now read-only.

Grails 7: Gradle 8.7+: JCenter retirement breaks webdriver-binaries-gradle-plugin and/or grolifant #443

@jamesfredley

Description

@jamesfredley

The work around is to adjust gradle/wrapper/gradle-wrapper.properties to version 8.6.

https://blog.gradle.org/portal-jcenter-impact

This does not appear to occur if you have locally cached versions before the JCenter retirement. github actions caches dependencies also, so they are OK for now.

But on a new environment or if you delete .m2 and .gradle caches you will see this issue.

Current guess is that artifacts on maven central are different than the ones that were on JCenter. Micronaut ran into a similar issue, but they used an older version of web driver and the required jars for that exist on https://repo.grails.org/ui/native/core/org/ysb33r/gradle/grolifant/

Execution failed for task ':examples-grails3-hibernate5:configureChromeDriverBinary'.
> org/gradle/wrapper/ExclusiveFileAccessManager

Caused by: java.lang.NoClassDefFoundError: org/gradle/wrapper/ExclusiveFileAccessManager
	at org.ysb33r.grolifant.api.core.ExclusiveFileAccess.$getStaticMetaClass(ExclusiveFileAccess.groovy)
	at org.ysb33r.grolifant.api.core.ExclusiveFileAccess.<init>(ExclusiveFileAccess.groovy)
	at org.ysb33r.grolifant.api.v4.downloader.ArtifactDownloader.<init>(ArtifactDownloader.groovy:166)
	at org.ysb33r.grolifant.api.v4.downloader.AbstractDistributionInstaller.getDistFromCache(AbstractDistributionInstaller.groovy:184)
	at org.ysb33r.grolifant.api.v4.downloader.AbstractDistributionInstaller.resolveDistributionLocationForVersion(AbstractDistributionInstaller.groovy:154)
	at org.ysb33r.grolifant.api.v4.downloader.AbstractDistributionInstaller$1.call(AbstractDistributionInstaller.groovy:107)
	at org.ysb33r.grolifant.api.v4.downloader.AbstractDistributionInstaller$1.call(AbstractDistributionInstaller.groovy)
	at org.gradle.api.internal.provider.DefaultProvider.calculateOwnValue(DefaultProvider.java:72)
	at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateOwnPresentValue(AbstractMinimalProvider.java:80)
	at org.gradle.api.internal.provider.AbstractMinimalProvider.get(AbstractMinimalProvider.java:100)
	at org.gradle.api.provider.Provider$get$0.call(Unknown Source)

The work around is to use Gradle 8.6, before they moved org/gradle/wrapper/ExclusiveFileAccessManager to https://github.com/gradle/gradle/blob/master/platforms/core-runtime/files/src/main/java/org/gradle/internal/file/locking/ExclusiveFileAccessManager.java

Related issues:

erdi/webdriver-binaries-gradle-plugin#43
micronaut-projects/micronaut-core#10988
micronaut-projects/micronaut-core#10990 - micronaut was using an older version of the web driver plugin and the required jars for that exist on https://repo.grails.org/ui/native/core/org/ysb33r/gradle/grolifant/

micronaut was using an older version with different id than grails:
https://plugins.gradle.org/search?term=webdriver-binaries

\--- com.github.erdi:webdriver-binaries-gradle-plugin:3.2
     +--- org.ysb33r.gradle:grolifant50:2.0.2
     |    +--- org.tukaani:xz:1.6
     |    +--- org.ysb33r.gradle:grolifant40:2.0.2
     |    |    +--- org.tukaani:xz:1.6
     |    |    +--- org.apache.commons:commons-collections4:4.4
     |    |    +--- org.ysb33r.gradle:grolifant-core:2.0.2
     |    |    |    +--- org.tukaani:xz:1.6
     |    |    |    +--- org.apache.commons:commons-collections4:4.4
     |    |    |    \--- org.ysb33r.gradle:grolifant-rawhide:2.0.2
     |    |    |         \--- org.tukaani:xz:1.6
     |    |    \--- org.ysb33r.gradle:grolifant-rawhide:2.0.2 (*)
     |    +--- org.ysb33r.gradle:grolifant-core:2.0.2 (*)
     |    \--- org.ysb33r.gradle:grolifant40-legacy-api:2.0.2
     |         +--- org.tukaani:xz:1.6
     |         +--- org.apache.commons:commons-collections4:4.4
     |         +--- org.ysb33r.gradle:grolifant-core:2.0.2 (*)
     |         \--- org.ysb33r.gradle:grolifant40:2.0.2 (*)
     \--- org.apache.maven:maven-artifact:3.8.7
          +--- org.codehaus.plexus:plexus-utils:3.3.1
          \--- org.apache.commons:commons-lang3:3.8.1

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions