Configuration-on-demand attempts to configure only the relevant projects for the requested tasks, i.e., it only evaluates the build script file of projects participating in the build.| docs.gradle.org
The Gradle TestKit (a.k.a. just TestKit) is a library that aids in testing Gradle plugins and build logic generally. At this time, it is focused on functional testing. That is, testing build logic by exercising it as part of a programmatically executed build. Over time, the TestKit will likely expand to facilitate other kinds of tests.| docs.gradle.org
Property details| docs.gradle.org
DependencyHandler| docs.gradle.org
Method details| docs.gradle.org
Substituting a dependency with attributes| docs.gradle.org
The vast majority of software projects build something that aims to be consumed in some way.| docs.gradle.org
Gradle’s publication model is based on the notion of components, which are defined by plugins.| docs.gradle.org
Capability| docs.gradle.org
Using dynamic dependency versions (e.g., 1.+ or [1.0,2.0)) can cause builds to break unexpectedly because the exact version of a dependency that gets resolved can change over time:| docs.gradle.org
Method details| docs.gradle.org
When you declare a version using the shorthand notation, then the version is considered a required version:| docs.gradle.org
Gradle has built-in support for dependency management.| docs.gradle.org
Gradle represents the scope of a dependency with the help of a Configuration.| docs.gradle.org
Component metadata rules are applied within the components section of the dependencies block in a build script or in the settings script.| docs.gradle.org
This plugin provides publications of type MavenPublication. To learn how to define and use publications, see the section on basic publishing.| docs.gradle.org
Publishing a plugin is the primary way to make it available for others to use.| docs.gradle.org
Lifecycle tasks can be particularly beneficial for separating work between users or machines (CI vs local).| docs.gradle.org
Plugins can be implemented as binary plugins, precompiled script plugins, or script plugins:| docs.gradle.org
The Java plugin adds a number of tasks to your project, as shown below.| docs.gradle.org
declaration: package: org.gradle.api.model, interface: ObjectFactory| docs.gradle.org
buildSrc is a Gradle-recognized and protected directory which comes with some benefits:| docs.gradle.org
The key difference between the standard Java plugin and the Java Library plugin is that the latter introduces the concept of an API exposed to consumers. A library is a Java component meant to be consumed by other components. It’s a very common use case in multi-project builds, but also as soon as you have external dependencies.| docs.gradle.org
The Java Gradle Plugin development plugin can be used to assist in the development of Gradle plugins.| docs.gradle.org
Method details| docs.gradle.org
If you’re implementing a custom task as a class, then it takes just two steps to make it work with incremental build:| docs.gradle.org
declaration: package: org.gradle.api.file, interface: FileCollection| docs.gradle.org
declaration: package: org.gradle.api.artifacts, interface: PublishArtifact| docs.gradle.org
Property details| docs.gradle.org
Build performance is critical to productivity.| docs.gradle.org
Gradle maintains a Virtual File System (VFS) to calculate what needs to be rebuilt on repeat builds of a project.| docs.gradle.org
The org.gradle.jvmargs Gradle property controls the VM running the build.| docs.gradle.org
The following sections describe the use of the Gradle command-line interface.| docs.gradle.org
The following sections will go through some general guidelines to adhere to when migrating your build logic.| docs.gradle.org
declaration: package: org.gradle.api.provider, interface: Provider| docs.gradle.org
declaration: package: org.gradle.api.provider, interface: Property| docs.gradle.org
declaration: package: org.gradle.api.file, interface: RegularFileProperty| docs.gradle.org
declaration: package: org.gradle.api.file, interface: DirectoryProperty| docs.gradle.org
declaration: package: org.gradle.api.file, interface: ConfigurableFileCollection| docs.gradle.org
Method details| docs.gradle.org
Method details| docs.gradle.org
IvyPublication| docs.gradle.org
How does it work?| docs.gradle.org
The Distribution Plugin facilitates building archives that serve as distributions of the project. Distribution archives typically contain the executable application and other supporting files, such as documentation.| docs.gradle.org
mergeReruns| docs.gradle.org
Example| docs.gradle.org
Source code and build logic of every software project should be organized in a meaningful way.| docs.gradle.org
org.gradle.caching=(true,false)| docs.gradle.org
Gradle provides lazy properties, which delay calculating a property’s value until it’s actually required.| docs.gradle.org
Remote HTTP build cache| docs.gradle.org
You can define what toolchain to use for a project by stating the Java language version in the java extension block:| docs.gradle.org
Understanding when type-safe model accessors are available| docs.gradle.org
Implementing an incremental task| docs.gradle.org
A multi-project build consists of a root project and one or more subprojects, all defined in a single settings.gradle(.kts) file.| docs.gradle.org
The following example demonstrates how two Gradle builds, normally developed separately, can be combined into a composite build.| docs.gradle.org
Gradle Installation| docs.gradle.org
Gradle comes with a set of powerful core systems such as dependency management, task execution, and project configuration.| docs.gradle.org
Using FileCollection| docs.gradle.org
Enforced Platform| docs.gradle.org
This section will walk you through converting your Groovy-based Gradle build scripts to Kotlin.| docs.gradle.org
Generating the Wrapper files requires an installed version of the Gradle runtime on your machine as described in Installation.| docs.gradle.org