kyle
10/04/2024, 9:12 PM:subprojectFoo
and I need to find its projectDir. I know that I should probably be providing this value as a task input but... it's complicated.Javi
10/07/2024, 4:23 PMValueSource
and its params interface. This interface is taking a Property<VersionMapper>
, and this mapper extends Serializable
.
interface Params : ValueSourceParameters {
val versionMapper: Property<VersionMapper>
...
}
public fun interface VersionMapper : Serializable {
public fun map(version: GradleVersion): String
}
But I am getting the next crash with config cache enabled:
> Could not create task ':playground-kotlin-version:printSemver'.
> Could not isolate value com.javiersc.semver.project.gradle.plugin.valuesources.VersionValueSource$Params_Decorated@3cad81e8 of type VersionValueSource.Params
> Could not serialize value of type Build_gradle..
I know the issue is around this VersionMapper
because if I remove it from params, it works.Javi
10/07/2024, 6:19 PM> Could not create task ':printSemver'.
> Could not isolate value com.javiersc.semver.project.gradle.plugin.valuesources.VersionValueSource$Params_Decorated@6c6a363a of type VersionValueSource.Params
> Could not serialize value of type $Proxy80
The problem is when the script is written in Groovy instead of in Kotlin.
semver {
mapVersion { "1.0.0" }
}
Should I use something like Transformer
instead my own VersionMapper
interface? I think I would have the same issue with Transformer
as that API does not extend serializable.Arve Seljebu
10/07/2024, 6:29 PMEnvirontment
does seem to cache all environment variables:
TrackingProperties(System.getenv()) // π no input of which environmental variables the task depend on
But Iβm unsure how to verify this. Where should I put a test like this?
fun `should bypass environmental variables that are not task dependencies when using configuration-cache`
And are there any similar tests that I can use as a template?kyle
10/17/2024, 12:27 AMProvider<String>
on a helper object which performs a semi-expensive shell-out the the terminal to fetch the version of a tool. I don't know why I thought this, but I expected the body of the method to be cached. Instead it is invoked each time I access the method. What am I doing wrong? Ideally the callable would be invoked once and the result cached each time I access getExpensiveVersionOfLocalThing().get()
.
public Provider<String> getExpensiveVersionOfLocalThing() {
return getProviderFactory().provider(() -> {
// do expensive thing
return expensiveResult;
});
}
Martin
11/03/2024, 12:47 PMproviders.environmentVariable("FOO")
vs directly provider { System.getenv("FOO") }
given that CC is invalidated on value changes in both cases?Martin
11/04/2024, 5:19 PMProvider.map {}
allowed with the configuration cache? I'm hitting a weird use case where it doesn't carry task dependencies:
val task1 = tasks.register("mytask1", MyTask::class) {
myInput.set("input1")
myOutputFile.set(layout.buildDirectory.file("output1.txt"))
}
val task2 = tasks.register("mytask2", MyTask::class) {
myInput.set(task1.map { it.myOutputFile.get().asFile.readText() + "Suffix"})
myOutputFile.set(layout.buildDirectory.file("output2.txt"))
}
output:
build/output1.txt (No such file or directory)
Is that a bug or am I using it wrong?Clayton Walker
11/13/2024, 11:08 PMRamiro Aparicio Gallardo
11/15/2024, 2:04 PMproject.configurations.getByName("testRuntimeClasspath").allDependencies
Configuration and DependencySet can not be cached but they will also not be properly populated at task configuration time.
ResolvedComponentResult or ResolvedArtifactResult can be used via providers but those are dependencies already resolved and afaik they will not know if it comes from a catalog or not.
Is there any way to make it work with the cache?Nikolay
11/19/2024, 9:18 AMbuild.gradle.kts
files in parent folders that look like this
allprojects {
group = "unique-group-name"
}
This appears to break project isolation. Is there a recommended way of fixing this for project isolation?Kevin Brightwell
12/20/2024, 7:11 PM.gradle/configuration-cache
and then un-tar it in the repeated runβ has the configuration-cache not re-used with no other information presented in the scanJason Pearson
12/28/2024, 7:11 PM--dry-run
give you an overall smaller transforms size while still providing config cache reuse?Nicklas Ansman
12/28/2024, 8:11 PMNicklas Ansman
12/28/2024, 8:12 PMVidyasagar Samudrala
12/30/2024, 5:41 AMBUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65* 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 1s Running Gradle task 'assembleDebug'... 1,989ms ββ Flutter Fix βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β [!] Your project's Gradle version is incompatible with the Java version that Flutter is using for Gradle. β β β β If you recently upgraded Android Studio, consult the migration guide at docs.flutter.dev/go/android-java-gradle-error. β β β β Otherwise, to fix this issue, first, check the Java version used by Flutter by running
flutter doctor --verbose
. β
β β
β Then, update the Gradle version specified in C:\Users\Lenovo\flutterProjects\android\gradle\wrapper\gradle-wrapper.properties to be compatible with that Java version. See the link below for more information on compatible β
β Java/Gradle versions: β
β https://docs.gradle.org/current/userguide/compatibility.html#java β
β β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Error: Gradle task assembleDebug failed with exit code 1
getting this issueRohitha Sivani Jarubula
01/13/2025, 10:02 AMGaurav Guleria
01/20/2025, 7:46 AMProvider
, so that inputFiles.files
is accessed lazily during execution, when the task action queries the fileCollection and the sources added need to be resolved.
return objectFactory.fileCollection()
.from(providerFactory.provider { unused ->
Set<File> files = inputFiles.files
// use files
Use FileCollection.getElements()
which is also just provides Provider
for accessing inputFile.files
return objectFactory.fileCollection()
.from(inputFiles.getElements().map { files ->
// use files
How does the former code access inputFiles.files
eagerly?Wojciech ZiΔba
01/29/2025, 4:21 PMMudasar Cheema
02/05/2025, 2:04 PMorg.gradle.unsafe.configuration-cache=true
in my gradle.properties
i have problem building my project because of this error:
* What went wrong:
Unable to find build service with name 'jaxbJavaGenTss'.
Why am I facing this issue and how to resolve it?
Pasting my build.gradle.kts
file in threadAndrew Grosner
02/06/2025, 11:05 PMConfiguration on demand is an incubating feature.
Calculating task graph as configuration cache cannot be reused because an input to task ':buildSrc:compileJava' has changed.
but ive only changed code within a library module code, nothing in buildSrc. anyway to debug / diagnose?Clayton Walker
02/11/2025, 11:15 PMjacocoTestReport {
afterEvaluate {
classDirectories.setFrom(files(classDirectories.files.collect {
fileTree(dir: it, exclude: 'com/blah/**')
}))
}
}
but I'm wondering if there are better ways now?Nicola Corti
02/13/2025, 5:10 PMval myCmakeTask by tasks.registering(Exec::class) {
commandLine("cmake", "--build", "build")
standardOutput = FileOutputStream("$buildDir/cmake-output.log")
errorOutput = FileOutputStream("$buildDir/cmake-error.log")
}
seems like standardOutput
and errorOutput
are causing the problem here.
Specifically:
cannot serialize object of type `java.io.FileOutputStream`, a subtype of `java.io.OutputStream`, as these are not supported with the configuration cache. Only `System.out` or `System.err` can be used there.
I canβt use System.out
or System.err
as I want to write on file.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.