Vidyasagar 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.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. 😕