StefMa
02/17/2025, 3:36 PMNADiNE
03/29/2025, 9:16 AMProcess 'command '/Users/nadinjoma/development/flutter/bin/flutter'' finished with non-zero exit value 1* Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.BUILD FAILED in 1m 30s Running Gradle task 'assembleDebug'... 91.5s Error: Gradle task assembleDebug failed with exit code 1. any help??
kyle
04/09/2025, 8:56 PMTest
tasks (one per suite) but am finding the need to have a custom "label" for each task . For example, labeling them one of [red, green, blue].
I was considering using ext
to set a custom property, i.e. task.ext.color = 'blue'
, or I could register a custom extension type.
Are either of these approaches going to break configuration caching? Will querying the extension at build-time cause the task to be eagerly created?
In pseudocode, I might have a CI trigger which runs something like:
tasks.withType(Test).collect {
it.hasExtension(MyCustomColorExtension) and
it.color == 'blue'
}...
This would enumerate the subset of tasks I need to pass to another downstream system.Giuseppe Barbieri
04/23/2025, 2:11 PMIsaac Kirabo
04/30/2025, 11:17 AMIsaac Kirabo
04/30/2025, 11:18 AMCould not resolve all files for configuration ':classpath'.> Could not find com.android.tools.buildG 8.0.0. Searched in the following locations: - https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/ 8.0.0/gradle- 8.0.0.pom - https://repo.maven.apache.org/maven2/com/android/tools/build/gradle/ 8.0.0/gradle- 8.0.0.pom Required by: project : * Try:
Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.* Get more help at https://help.gradle.org BUILD FAILED in 6m 41s Error: Gradle task assembleDebug failed with exit code 1 Exited (1).
Michael
05/03/2025, 8:38 AM./gradlew assemble --configuration-cache
First run
Calculating task graph as no cached configuration is available for tasks: assemble
[Build log]
Configuration cache entry stored.
Second run
Calculating task graph as configuration cache cannot be reused because the file system entry 'build/classes/java/main' has been created.
[Build log]
Configuration cache entry stored.
Third run
Reusing configuration cache.
[Build log]
Configuration cache entry reused.
How can I debug what depends on build/classes/java/main
?
I'm using
plugins {
id 'java'
id "org.springframework.boot" version "3.4.5"
id "io.spring.dependency-management" version "1.1.7"
id "org.openapi.generator" version "7.13.0"
id "org.sonarqube" version "6.1.0.5360"
id 'jacoco'
id "io.freefair.lombok" version "8.13.1"
}
and gradle 8.14.Clayton Walker
05/07/2025, 11:56 PM.map { it.incoming.resolutionResult.root }
causes us to realize/create each configuration? So even if the output of this is cc-compatible, it still causes us to realized the collection.
Is this fine if it's done in a configureEach, as it'll only be realized if the task is actually called?
It just seems like unlike Property/Provider, there's no map/flatMap for the named object collections.Oleg Nenashev
05/14/2025, 11:32 AMOleg Nenashev
05/15/2025, 3:16 PMOleg Nenashev
05/15/2025, 3:26 PMFrank Riccobono
05/15/2025, 4:12 PMSlackbot
05/15/2025, 4:29 PMOleg Nenashev
05/30/2025, 6:05 AMOleg Nenashev
06/02/2025, 12:24 PMCallum Rogers
06/10/2025, 3:30 PMclasses testClasses
etc) fully works
2. Enable CC using gradle properties _in warn mode_ on repos so that CC will work for compilation, just not save the cache state for everything other set of tasks
3. In each repo, specify the max number of allowed CC problems to be the current number of problems. Use this max number of problems as a ratchet to stop people adding new problems (ie stop the bleeding).
4. Automatically reduce this max allowed number of CC problems down as we fix issues
5. CC just works on workflows where everything is fixed
6. Eventually we work down to 0 issues on the whole ./gradlew build
and we hard enforce configuration cache on that repo
However, this doesnât work, as warn
mode doesnât do what we expect. warn
mode is apparently only supposed to be used for diagnosing initial problems. If you use warn
mode, the build will still go wrong or error on configuration cache issues:
We donât recommend usingFrom the Gradle team herefor anything but initial configuration cache adoption attempts to see more issues at once.problems=warn
WithFrom here This has kind of stopped us in our tracks, as we canât just always run in warn mode for all our repos and keep track of the problems. Is there any way to gradually enable configuration cache? Our options seem to be: âą Hard enforce CC on each repo using the gradle property. However, this requires getting to completely fixed in each repo in all the plugins and workflows it uses. This will take us a very long time due to the scale of our Gradle plugins (built over the last 13 years - many are quite crusty). âą Have our devs opt-in to CC by manually using, it is expected that your build might run incorrectly if there are problems detected.problems=warn
--configuration-cache
. This feels like a non-starter to me. Devs shouldnât have to worry about this and wonât necessarily know which tasks are CC supported or not. It doesnât enable it in IntelliJ without another IntelliJ Plugin. We canât stop CC problems from regressing.
Is there some other approach?no
06/18/2025, 11:30 AMVladimir Sitnikov
06/20/2025, 9:37 AMorg.gradle.api.tasks.diagnostics.internal.ConfigurationDetails
is not publicly-available.
Any third-party task like dependencies
would effectively duplicate ConfigurationDetails
to support the configuration cache.
Is there a possibility to make ConfigurationDetails
public? I would assume it could be a feature-reduced variation of Configuration
.Vladimir Sitnikov
06/20/2025, 2:19 PMResolvedArtifact
(coordinates + file) from a Configuration
so it is compatible with configuration cache?
I see I can pass incoming.resolutionResult.rootComponent
(which is Provider<ResolvedComponentResult>
) as a task property, however, I do not see how could I fetch artifact file location from the ResolvedComponentResult
Vladimir Sitnikov
06/20/2025, 5:51 PMproject
nor project.dependencies
is compatible with CC:
val artifactResolutionResult = project.dependencies.createArtifactResolutionQuery()
.forComponents(requests.map { it.first })
.withArtifacts(MavenModule::class, MavenPomArtifact::class)
.execute()
val results = artifactResolutionResult.resolvedComponents
.associate { it.id to it.getArtifacts(MavenPomArtifact::class) }
René
06/25/2025, 9:14 AMFileCollection mainRuntime = mainSourceSet.getRuntimeClasspath();
FileCollection testRuntime = testSourceSet.getRuntimeClasspath();
FileCollection testOnlyFiles = testRuntime.minus(mainRuntime);
test.doFirst(task -> test.environment("es.entitlement.testOnlyPath", testOnlyFiles.getAsPath()));
ideally I would want to replace the requirement for using test.doFirst
by replacing it with
test.environment("es.entitlement.testOnlyPath", getProviderFactory().provider(() -> testOnlyFiles.getAsPath()));
Now in theory that works okay but it breaks as soon as we enable configuration cache and have artifact transforms in declared that are registered against configurations that include internal dependencies complaining about the expected jar to transform not yet available (well it did not build yet). My understanding is that with having those configurations declared as @InputFiles
gradle understands its buildable and does handle it as expected. Given that environment
is @Input
we circumvent the buildable part I assume. In this case would you just keep the doFirst block as is or do you have another idea how to solve that properly?Vampire
06/26/2025, 3:05 PMabstract class MyTask : DefaultTask() {
@get:Input
abstract val foo: Property<String>
}
val bar by tasks.registering
val baz by tasks.registering(MyTask::class) {
foo = bar.map {
println("Calculating foo")
""
}
}
the value of foo
should not be serialized to the CC entry, as it has a task dependency.
But obviously I forgot some detail. đEli Graber
07/17/2025, 5:59 AMVladimir Sitnikov
07/21/2025, 4:18 PMCalculating task graph as configuration cache cannot be reused because environment variable 'AWS_ACCESS_KEY_ID' has changed.
Is there a way to avoid configuration cache invalidation when credentials change?Ivan CLOVIS Canet
07/21/2025, 8:13 PMval theirTask by tasks.registering {
aProperty = provider { someComplexInitialization() }
}
instead of
val theirTask by tasks.registering {
aProperty = someComplexInitialization()
}
?
With the configuration cache enabled, the task will be configured eagerly anyway if theirTask
is in the task graph, so the provider {}
does nothing. Or is provider {}
only for declaring things outside of tasks?Alex Beggs
07/25/2025, 4:33 PMRobert Elliot
07/30/2025, 5:25 PMJonathing
08/19/2025, 12:11 PMObjectFactory#newInstance
(or whatever the internal version of that is) with service injection support or does it try to build the class raw using the saved values. Asking because I am using a transient private field that stores an instance of Problems
which is normally provided through service injection in constructor parameter or bean getter.Daniel Karapishchenko
08/22/2025, 7:40 PMtest
for example) without actually running it?Ivan CLOVIS Canet
08/24/2025, 1:12 PMException in thread "DefaultSharedObjectDecoder reader thread" org.gradle.api.GradleException: Could not load the value of
field `collection` of `kotlin.collections.builders.SerializedCollection` bean found in
field `_byTask` of `org.jetbrains.kotlin.gradle.targets.js.nodejs.TasksRequirements` bean found in
field `tasksRequirements` of `org.jetbrains.kotlin.gradle.targets.js.npm.resolver.KotlinCompilationNpmResolution` bean found in
field `byCompilation` of `org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinProjectNpmResolution` bean found in
field `v` of `java.util.Collections$SingletonMap` bean found in field `projects` of `org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution` bean found in
field `__resolution__` of `org.jetbrains.kotlin.gradle.targets.js.npm.KotlinNpmResolutionManager$Parameters_Decorated` bean found in Gradle runtime.
at org.gradle.internal.serialize.graph.BeanPropertyExtensionsKt.readPropertyValue(BeanPropertyExtensions.kt:70)
at org.gradle.internal.serialize.beans.services.BeanPropertyReader.readFieldOf(BeanPropertyReader.kt:93)
âŠ
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 53 out of bounds for length 4
at org.gradle.internal.serialize.codecs.core.jos.JavaObjectSerializationCodec.decode(JavaObjectSerializationCodec.kt:299)
at org.gradle.internal.serialize.graph.codecs.BindingsBackedCodec.decode(BindingsBackedCodec.kt:92)
* What went wrong:
Could not load the value of field `__npmResolutionManager__` of task `:jsPackageJson` of type `org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinPackageJsonTask`.
No build scan was generated, even though they are enabled.
From what I can tell, this was introduced by this commit, but I don't understand why.