Maksym Moroz
10/14/2025, 12:54 PMlayout.buildDirectory.file("intermediates/***/***.txt")Charbel Sadaka
10/14/2025, 1:18 PMFileOperations class to create the zip archive using the zipTree .
Can someone please refer or attach a sample on how can i continue the workflow to deploy it on a maven repoMike Wacker
10/14/2025, 4:42 PMcom.avast.gradle.docker-compose plugin (version 0.17.18).
With the configuration cache disabled, it runs, e.g., in this order: :lib1:composeUp, :lib1:test, :lib1:composeDown, :lib2:composeUp, :liib2:test, :lib2:composeDown. But with the configuration cache enabled, it looks like it runs :lib1:composeUp and :lib2:composeUp in parallel first. Which can cause issues if there are port conflicts between those two tasks. I've attached an MCVE.Martin
10/15/2025, 3:16 PMfoo=bar to my root project gradle.properties, how is this working if this same root project becomes an included build?
1. The main build value is used
2. The included build value is used
3. It depends
If 3., how can I tell?Edwin Günthner
10/16/2025, 11:54 AMtestFixturesImplementation("org.apache.commons:commons-lang3")
toolsImplementation("org.apache.commons:commons-lang3")
and that was sufficient to compile our kotlin unit tests.
Today, I started the work to upgrade out build setup to use kotlin 2.2.20 (from 1.9.22 before), and now those kotlin unit tests using lang3 don't compile any more.
e: file:///Volumes/Whatever/.../foo/src/testFixtures/kotlin/.../Blub.kt:23:27 Unresolved reference 'lang3'.
(and similarly, another kotlin unit test that relies on src/tools/java ... also doesn't see those classes any more.Robert Elliot
10/16/2025, 2:18 PM~/.gradle/caches/build-cache-1 between runs.
Unfortunately this means periodically when two builds run concurrently one fails as so:
> Failed to load cache entry 0801251eccdf893889c1065191e1327d for task ':admin-api:findDeclaredProcsMain': Could not load from local cache: Timeout waiting to lock Build cache (/home/worker/.gradle/caches/build-cache-1). It is currently in use by another process.
Owner PID: 52
Our PID: 53
Owner Operation:
Our operation:
Lock file: /home/worker/.gradle/caches/build-cache-1/build-cache-1.lock
Looks like it's a 30 second timeout.
Is this a sign that sharing that directory is a bad idea? Or that Gradle is being too aggressive with the lock (could it take and release it much more frequently during concurrent builds, I wonder)?Rui Li
10/17/2025, 3:23 AMjava.lang.NoSuchMethodError: 'org.slf4j.spi.LoggingEventBuilder org.slf4j.Logger.atInfo()' on running test, because Gradle automatically adds gradle-api.jar in the class path, and the jar file contains an older version of slf4j API that doesn't have these methods. Is there a way to exclude gradle-api.jar from the class path? The normal way of excluding transient dependency doesn't work, because nothing depends on gradle-api.jar except gradle itself.Edwin Jakobs
10/17/2025, 8:11 AMMaksym Moroz
10/17/2025, 9:58 AMbuild-logic included build I use for convention plugins, the type you apply to gradle projects to unify declarations like android { }
In my gradle scan I get this message
The build cache configuration of the root build differs from the build cache configuration of the early evaluated ':build-logic' included build. It is recommended to keep them consistent, see here.
From what I could look up this is due to the fact I compose my included build inside pluginManagement { } instead of directly on the settings.gradle.kts itself
I guess I have a few questions:
1. Can I include my build-logic outside of pluginManagement { }?
2. Alternatively I could copy over buildCache configuration to the build-logic?
What's the right approach? Is using pluginManagement includeBuild() a specific case that should be used only in some situations? Like providing a plugin that targets the settings.gradle.kts itself?yjxf vf
10/17/2025, 2:48 PMincludeBuild('../A') {
dependencySubstitution {
substitute module('me.myname:a') using project(':')
}
}
gradle will awayls use jar task's outputDaren Burke
10/17/2025, 3:22 PMimplementation "com.my-company:my-project:my-version:spec"
I haven't been able to find a way to declare the ':spec' specific jar within the confines of the version catalog -- any ideas?Kanstantsin Shautsou
10/17/2025, 5:38 PMMaksym Moroz
10/17/2025, 6:00 PMcompileOnly (I think my idea was mainly leaving root module plugins { } as a single source of truth for putting plugins on classpath
This approach seemed to work just fine until I decided to lift gcp build cache plugin out of settings.gradle.kts
Now all of the sudden my android library convention plugin fails to resolve classes like com.android.lint
How do I make sense of this and what’s the solution?
My current intuition is that gcp build cache plugin being applied to settings was maybe putting com.android.library on classpath?
Also if I decide to use implementation configuration for convention plugin dependencies does it mean I will need drop root module plugins with apply false and instead have versionless plugins in my build files?Caleb Cushing
10/17/2025, 9:34 PMMaksym Moroz
10/20/2025, 8:21 AMfeature-something-api that is consumed by feature-something-impl
Does anyone have any relevant links?Tanish
10/21/2025, 5:39 AMKanstantsin Shautsou
10/21/2025, 10:28 AMMaksym Moroz
10/21/2025, 3:55 PMincludeBuild() to see changes without publishing. However going through the motion of removing version from version catalog and then putting it back seems like a bad way and there is probably a better one. If anyone knows of a better way please share your expertise, thanksColton Idle
10/23/2025, 12:27 AMDaniel Svensson
10/23/2025, 1:57 PMbuild job that compiles everything, and then a couple of downstream jobs that does some stuff with the built artifacts. The build job starts with restoring ~/.gradle/shared_cache/modules-2 and sets the GRADLE_RO_DEP_CACHE environment variable to this and saves that path to CI cache at the end after having rsync'd any delta. Downstream jobs restore that shared cache and maintains their own cache of ~/.gradle/caches/modules-2 with for example runtime dependencies that aren't available in the shared cache. While this works nice I noticed that it's still pretty slow and with --info I noticed what it looks like http lookups of manifests for the dependency verification feature. I was under the impression that this would be a no-op given that I have a warm cache with all my dependencies now, so I put that to the test and added --offline argument to the build and this made the build fail with checksum is missing from verification metadata . So how do I avoid dependency verification needing network access? If I search my local ~/.gradle directory for .asc files, the modules-2 directory is the only one that matches, so these should be available in the cache already. Is this a current limitation that GRADLE_RO_DEP_CACHE doesn't allow for resolving dependency verification signatures? I'm using a checked-in keyring, and have keyservers disabled in the verification-metadata.xml with the goal of not needing network access.Elias Faraclas
10/23/2025, 8:43 PMColton Idle
10/23/2025, 9:43 PMVlastimil Brecka
10/24/2025, 12:12 AMsubprojects {
tasks.register("foo") { … }
}
ELI5 why does this break configuration avoidance? It's using register which makes task instantiation lazy.. so what's the problem?
Docs basically just say its bad because it injects code not visible at project build file (sure), and it introduces comfiguration time coupling (not sure what does it mean)
How exactly am I tanking perf by this?Slackbot
10/24/2025, 2:10 PMBen Bader
10/24/2025, 3:52 PMdef myExtensionOutput = extensions.getByName("myExtension").outputFilePath
tasks.register("someTask") {
inputs.file(myExtensionOutput)
}
The reason they do this is because the file at the output path is expected to just be there as a result of a previous task execution. There is no implied dependency on the source task in the graph.
My question is, is this wrong? Why? It feels wrong to me but I can't think of any actual problem they'd encounter and I'd like to check my assumptions. (clearly the better solution is to pass the path in as a property/env-var/well-known-file, and that's what I've recommended)Colton Idle
10/24/2025, 7:14 PMimplementation is automatically also available in androidTestImplementation right?
Same goes for unit tests. So you don't have to redefine every dep to be implementation and testImplementation right?Vlastimil Brecka
10/24/2025, 7:43 PMsettings.gradle
But isn't there something more sophisticated?
Other than flipping it on its head, having per app builds & then one composite one (which I would not prefer)Colton Idle
10/26/2025, 5:31 AMcache github action and trying to cache certain downloads from gradle there.
i have 0 experience setting up github actions with a gradle+android project (i usually use bitrise) so im unsure if this sort of caching thing is just handled for free when using the official gradle step. thanks!Robert Elliot
10/26/2025, 11:48 AMcom.github.johnrengelman.shadow:8.1.1 to com.gradleup.shadow:9.2.2, and it breaks some of my existing gradle config. Details in thread.Colton Idle
10/26/2025, 7:57 PM