Slackbot
11/18/2022, 7:47 AMMarkus Maier
11/18/2022, 7:48 AMpublic class RedisBuildCachePlugin implements Plugin<Settings> {
@Override
public void apply(Settings settings) {
BuildCacheConfiguration buildCacheConfiguration = settings.getBuildCache();
buildCacheConfiguration.registerBuildCacheService(RedisBuildCache.class, RedisBuildCacheServiceFactory.class);
}
static class RedisBuildCacheServiceFactory implements BuildCacheServiceFactory<RedisBuildCache> {
@Override
public BuildCacheService createBuildCacheService(RedisBuildCache configuration, Describer describer) {
return new RedisBuildCacheService(configuration);
}
}
}
Markus Maier
11/18/2022, 7:49 AMorg.gradle.initialization.exception.InitializationException: Gradle could not start your build.
at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65)
at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:55)
at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:39)
[...]
Caused by: org.gradle.internal.service.ServiceCreationException: Could not create service of type BuildCacheController using .createBuildCacheController().
at org.gradle.internal.service.DefaultServiceRegistry$FactoryMethodService.invokeMethod(DefaultServiceRegistry.java:898)
[...]
Caused by: org.gradle.api.GradleException: Build cache type 'com.company.gradle.cache.RedisBuildCache_Decorated' has not been registered.
at org.gradle.caching.configuration.internal.DefaultBuildCacheConfiguration.getBuildCacheServiceFactoryType(DefaultBuildCacheConfiguration.java:155)
at org.gradle.caching.configuration.internal.DefaultBuildCacheConfiguration.getBuildCacheServiceFactoryType(DefaultBuildCacheConfiguration.java:142)
at org.gradle.caching.internal.services.BuildCacheControllerFactory.createBuildCacheService(BuildCacheControllerFactory.java:158)
[...]
Mikhail Lopatkin
11/18/2022, 9:34 AMMarkus Maier
11/18/2022, 11:29 AMgradlew wrapper --gradle-version 7.6-rc-3
, but it turns out that this is silently ignored when a wrapper task is configured in code (which we do to not constantly download from the public internet in our CI).
So as a follow-up: is it possible to use a custom download location and support wrapper --gradle-version nnn
at the same time?Mike Cumings
11/18/2022, 3:31 PMMarkus Maier
11/21/2022, 8:38 AM-D
or -P
produces no different result from not setting it, same as putting it into the project's gradle.properties
or my user properties (the latter with and without systemProp.
prefix). How do you use that?Mike Cumings
11/22/2022, 6:34 PMsystemProp.org.gradle.internal.plugins.portal.url.override=<https://server/path/etc/>
Mike Cumings
11/22/2022, 6:36 PMgradle/wrapper/gradle-wrapper.properties
as wellMike Cumings
11/22/2022, 6:36 PMMarkus Maier
11/23/2022, 7:37 AMgradle-wrapper.properties
(which is all I really care about).Mike Cumings
11/23/2022, 4:20 PMgradle-wrapper.properties
tweak causes all gradle-related stuff (plugins, gradle implementation referenced by gradlew, etc.) to be pulled through a proxy cache of your choosing. I think I misunderstood the nuance of your follow-up question so my suggestion won't solve your issue completely.Markus Maier
11/23/2022, 4:28 PMplugins.portal
strongly suggests that it is. I think I was just too focused on my own needs 🙂