
Share entire scans or links focussed to a particular aspect of the build such as a logging output line. Share build scans with colleagues to efficiently solve problems and improve things together. Build scans provide more information, more effectively. Understand what happened in your build via a rich web interface instead of a text console and text files. When a task reaches its timeout, its task execution thread is interrupted and allowing the build to finish. Task timeoutsĮvery task has a timeout property which can be used to limit its execution time. This is done on demand, only when the artifacts are actually required.

Gradle will download both dependency metadata (typically `pom.xml`) and artifacts in parallel. Parallelism is very fine-grained, resulting in faster performance. Gradle allows parallel execution of tasks and intra-task work through a Worker API. This provides a dramatic speed improvement for the compilation process. When you need to fork the compilation process, Gradle creates a daemon process that is reused within a multi project build. Incremental annotation processing significantly increases the effectiveness of incremental compilation when supported annotation processors are present.

With this information the task may not need to rebuild everything. The task can use the incremental API to learn what files exactly have changed. When Gradle discovers that the input or output of a task has changed between build runs, the task is executed again. Several plugins including Android, Kotlin, C++, and Scala also support task level caching. A local build cache is also available to reuse task outputs produced earlier on the same machine. The typical use case is to let CI builds push to a shared build cache, and allow developers to pull from it. If a task has already been executed on another computer, Gradle can skip the execution locally, and instead load the task's outputs from the build cache. Gradle also considers the configuration of the task as part of its input.

If not, the task is considered up to date and is not executed.

Gradle checks in between build runs whether the input, output or an implementation of a task has changed since the last build invocation. These features affect developers running Gradle builds, and can be taken advantage of by anyone running Gradle. Check out the user manual for reference and Gradle Build Tool guides for getting started. This categorized list of Gradle Build Tool features will help you understand some capabilities of Gradle Build Tool for your use cases.
