Irfan Abdi
08/05/2026, 12:50 PMJason Pearson
08/09/2026, 3:20 AMChris Fillmore
08/14/2026, 8:19 PMMyApp depends on depA, which depends on an old version of depB :
MyApp -> depA -> depB
I want to break the dependency on depA and instead depend directly on a new version of depB . However I need to keep the previous arrangement, to support a gradual rollout of the change:
MyApp
-> depB
-> depA -> depB
From talking to Claude I am under the impression this is basically impossible, since there will be conflicts on the classpath.
Yet this seems like it may be a common requirement for projects, so I'm wondering how other people handle this. Thanks for your time.Lukáš Krystek
08/17/2026, 10:48 AM--refresh-dependencies parameter everytime at CI build job.
But sometimes i get Cound not get HEAD from some pom file from maven central or Count not GET another lib. Is there possible, that the parameter causes this issues ?
Maybe a few pipelines asks maven central very frequently and we get some anti DDOS blocks?
Is there any way to add retry logic when gradle tries to fetch remote dependencies and failed could it try again from the same repository?
If i remove this, is there possibility to break something on CI builds?
Thank you for answeringysb33r
08/19/2026, 7:50 PMBrais Gabín Moreira
08/21/2026, 12:41 PM8.14.3. Detekt can't update to the last version of sarif4k because it uses a recent version of kotlin (https://github.com/gradle/gradle/issues/16345). The problem is not the library itself but its dependencies. My question, is there any tool I can run on sarif4k side to ensure that my library is compatible with certain version of gradle (or kotlin, I don't care, I can make the conversion). I want to run it on CI so this doesn't happen again.Tim Yates
08/24/2026, 7:56 AMMartin
08/26/2026, 1:16 PM~/.gradle but I haven't found a way to allow the daemon to access the Sandbox networking is blocking Gradle's file-lock socket. Retrying without the sandbox.Philip W
08/27/2026, 7:37 AMmyParallelBuildService.get() inside a task action if you use a shared build service without any parameters to only limit parallelism?Adam
08/27/2026, 10:05 AMAlex Beggs
08/27/2026, 2:20 PMinclude references. Our benchmarks show that we incur additional configuration load times in our build scans. Additional time to a cold configuration which would impact the ide-sync times by 25%. Is this an expected slow down or are we doing something wrong?John
08/27/2026, 9:12 PMLex Manos
08/28/2026, 7:11 AMJean Helou
08/28/2026, 4:54 PMThomas Keller
09/01/2026, 7:33 AMbuild.gradle.kts , so applied via the plugins { ... } block and (b) via project-specific build conventions, that apply the plugin and preconfigure it.
Now it can happen that the JAR of one plugin of the shared build conventions is applied via the project-specific build conventions and directly in the build.gradle.kts (of course, different plugins) and in this case Gradle tells me
Error resolving plugin [id: 'plugin.applied.in.build.gradle.kts', version: '0.1.0']
> The request for this plugin could not be satisfied because the plugin is already on the classpath with an unknown version, so compatibility cannot be checked.
so I remove the version identifier from the plugins {} block. But then for another build convention plugin, that I apply on the root build, I get
Plugin [id: 'other.plugin.applied.in.root.build.gradle.kts'] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Included Builds (None of the included builds contain this plugin)
- Plugin Repositories (plugin dependency must include a version number for this source)
even though the root build has project-specific build conventions applied before as well, which carry the JAR as a dependency as well. So I'm kind of puzzled why some plugins {} blocks need a version and others must not get one. I feel I'm doing something wrong.Philip W
09/01/2026, 9:29 AMProperties files, and I want to pass these properties to a `MapProperty<String, String>`:
`val propertiesAsMapProvider = providers.fileContents(
writePropertiesToFile.flatMap { it.output },
).asText.map {
it.byteInputStream().use {
Properties().apply { load(it) } as Map<String, String>
}
}
This looses the task dependencies...Lex Manos
09/03/2026, 11:12 PMThomas Keller
09/04/2026, 11:15 AM$GRADLE_USER_HOME/.gradle/caches/<version>/transforms directory which is gathering multiple gigabytes worth of duplicated transformed libraries that get generated through my multi component build. Now I know Gradle is first about correctness and speed and secondly only cares about optimizing cache sizes and the like, but I really, really would love to have some option in Gradle to clear outdated / unused caches. Not only transforms, but in general also cache folders from older Gradle versions, old cached distributions and the like. I know I could write a script and do it myself in one go, but then Gradle daemons need to be stopped properly, no new Gradle daemons must be started (otherwise Gradle stumbles upon corrupted caches) and in general I think it's Gradle's task to deal with its caches, not only creating them, but also keeping them under control. Is anything planned in this direction / is there eventually a ticket that I could subscribe to that would deal with that?willbanders
09/04/2026, 8:12 PM./gradlew --version
...
Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.launch.AntMain
Reverting to Gradle 9.7.0 (manually updating gradle-wrapper.properties, since gradlew commands don't work) fixes this issue - output of ./gradlew --version in thread. I had a project working with Gradle 9.7.1 as of a week ago but it seems to be failing now - is there any chance this is some form of upstream dependency issue?Hamza GATTAL
09/05/2026, 11:18 PMversion-catalog plugin, using .withoutVersion() on most libraries and only versionRef on a BOM alias. Minimal repro:
// build.gradle.kts
plugins {
`version-catalog`
}
catalog {
versionCatalog {
val versionAlias = version("mylib", "1.0.0")
library("bom", "com.example", "mylib-bom").versionRef(versionAlias)
library("core", "com.example", "mylib-core").withoutVersion()
}
}
Generated TOML:
[versions]
mylib = "1.0.0"
[libraries]
bom = { group = "com.example", name = "mylib-bom", version.ref = "mylib" }
core = { group = "com.example", name = "mylib-core", version = "" }
If a consumer forgets to apply the BOM as a platform:
dependencies {
implementation(platform(libs.mylib.bom))
implementation(libs.mylib.core) // no platform applied
}
...resolution fails with Could not find com.example:mylib-core:. — which makes sense once you know the empty version is intentional, but the error message doesn't hint at the cause at all. A couple questions:
1. Is there a way to make Gradle emit a clearer error here — something that mentions the missing platform/BOM rather than just a blank version?
2. Is .withoutVersion() + BOM the recommended pattern for a multi-module library's catalog, or is there a more idiomatic way to enforce "must be used with platform X" at the catalog level?
Trying to figure out if I should adopt this for my own multi-module project's catalog or just keep versionRef on every library instead.rushikesh.jawali
09/14/2026, 4:33 PMEdwin Günthner
09/16/2026, 6:45 PM* What went wrong:
Plugin [id: 'org.gradle.kotlin.kotlin-dsl', version: '6.6.4'] was not found in any of the following sources:
- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Included Builds (No included builds contain this plugin)
- Plugin Repositories (could not resolve plugin artifact 'org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:6.6.4')
Searched in the following repositories:
maven(<https://eu.artifactory.whatever.com/artifactory/foobarblub>)
Token invalid , download not possible, but a "not found error"
In order to make our tooling more user friendly, we added a "ping" check to our toplevel settings.gradle file.
Artifactory servers have a "ping" endpoint, so do a GET request ... and if that fails with a 401 or 403, the token is not valid, and we can print a nice error message.
But: this means that any single gradle invocation sends such a "ping" to the Artifactory servers.
And now we regularly see failures on our CI build servers with Artifactory complaining about "too many requests".
Before we had this "ping" solution, we tried to somehow "catch" the actual "not found error" that I showed above, but I couldn't get that to work reliably.
Any idea if/how we can reliably give "good" error messages when Artifactory downloads fail (because of that bad token), without hammering the servers with every gradle invocation?N Murali
09/17/2026, 8:58 AMN Murali
09/17/2026, 9:00 AMRun with --info or --debug option to get more log output.
Get more help at help.gradle.org.CONFIGURE FAILED in 38s
roger.lee
09/19/2026, 10:27 AMysb33r
09/21/2026, 3:53 PMaddLater or addAllLater on a domain collection especially on a named collection?ysb33r
09/21/2026, 5:05 PMonlyIf {} within that class, it fails when configuration cache is active.
I have not spent enough time investigating it, but the couple of times I saw it was enough to irritate meAdam
09/24/2026, 9:45 AMsigning.setRequired { <project has tasks that publish to Maven Central> }), then dev-publish also triggers signing, which fails on machines/CI without signing keys. Afaict it's not possible to disable signing per repository.
The fix I'm looking at is skipping signing when only dev-publish tasks are in the task graph then disable the sign tasks (e.g. via Sign.onlyIf {}). But I'm not sure whether this should be a default opt-out behaviour, or an opt-in behaviour.
Should dev-publish...
1. Automatically disable signing when only dev-publish tasks are requested?
2. Or just detect that signing is enabled but not configured, and warn/fail with a hint like "conditionally disable signing for local testing"?Adam
09/24/2026, 9:51 AMMartin
09/24/2026, 1:19 PM