Gradle Release Notes

We are excited to announce Gradle 9.9.0-milestone-1 (released 2026-09-14).

This release features 1, 2, ... n, and more.

We would like to thank the following community members for their contributions to this release of Gradle: devareddy05.

Be sure to check out the public roadmap for insight into what's planned for future releases.

Table Of Contents

Upgrade instructions

Switch your build to use Gradle 9.9.0-milestone-1 by updating the wrapper in your project:

./gradlew :wrapper --gradle-version=9.9.0-milestone-1 && ./gradlew :wrapper

See the Gradle 9.x upgrade guide to learn about deprecations, breaking changes, and other considerations when upgrading to Gradle 9.9.0-milestone-1.

For Java, Groovy, Kotlin, and Android compatibility, see the full compatibility notes.

New features and usability improvements

Isolated Projects

Isolated Projects is an incubating performance feature that safely runs project configuration in parallel, significantly reducing configuration time in many scenarios, including IDE sync and CI builds.

Configuration Cache improvements

Gradle provides a Configuration Cache that improves build time by caching the result of the configuration phase and reusing it for subsequent builds.

Test reporting and execution

Gradle provides a set of features and abstractions for testing JVM code, along with test reports to display results.

CLI, logging, and problem reporting

Gradle provides an intuitive command-line interface, detailed logs, and a structured problems report that helps developers quickly identify and resolve build issues.

Build authoring improvements

Gradle provides rich APIs for build engineers and plugin authors, enabling the creation of custom, reusable build logic and better maintainability.

Dependency management enhancements

Gradle provides a flexible dependency management engine for declaring, resolving, and verifying the dependencies your build needs.

Platform and toolchain management

Gradle provides comprehensive support for JVM languages, featuring automated Toolchains for seamless JDK management.

Core plugin and plugin authoring enhancements

Gradle provides a comprehensive plugin system, including built-in Core Plugins for standard tasks and powerful APIs for creating custom plugins.

Sync can empty its destination when its source is empty

A Sync task whose source contains no files and no directories, by default, does not run, so its destination directory is not synchronized. What is left in the destination then depends on whether it is a build-owned directory: if it is, the destination is cleaned up; otherwise it keeps the files the source no longer contains.

Setting the new skipWhenSourceIsEmpty property to false makes the task run in that case as well, so that an empty source empties the destination directory:

tasks.named<Sync>("mySync") {
    skipWhenSourceIsEmpty = false
}

Sync always deletes the entire contents of its destination directory, not only the files it previously copied there. With skipWhenSourceIsEmpty disabled, that also happens when the source is empty - including when it is empty by mistake - so disable it only where nothing other than the task writes to the destination, and use preserve { ... } to retain anything the task does not manage.

See Synchronizing from an empty source in the user manual for more details.

Security and infrastructure

Gradle provides robust security features and underlying infrastructure to ensure that builds are secure, reproducible, and easy to maintain.

Tooling and IDE integration

Gradle provides Tooling APIs that facilitate deep integration with modern IDEs and CI/CD pipelines.

Performance improvements

Gradle continuously improves build performance through caching, parallelism, and reduced overhead across all phases of the build.

General improvements

Gradle provides various incremental updates and performance optimizations to ensure the continued reliability of the build ecosystem.

Promoted features are features that were incubating in previous versions of Gradle but are now supported and subject to backward compatibility. See the User Manual section on the "Feature Lifecycle" for more information.

The following are the features that have been promoted in this Gradle release.

Documentation and training

Fixed issues

Known issues

Known issues are problems that were discovered post-release that are directly related to changes made in this release.

External contributions

We love getting contributions from the Gradle community. For information on contributing, please see gradle.org/contribute.

Reporting problems

If you find a problem with this release, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure if you're encountering a bug, please use the forum.

We hope you will build happiness with Gradle, and we look forward to your feedback via Twitter or on GitHub.