Gradle
User Manual
Community
Open Community Menu
Community Home
Community Forums
Community Plugins
Training
News
Open Community Menu
Newsletter
Blog
Twitter
Enterprise
github
Docs Home
Samples
Release Notes
Gradle DSLs and API
Javadoc
Groovy DSL Reference
Groovy DSL Primer
Kotlin DSL API
Kotlin DSL Primer
Groovy to Kotlin DSL Migration
User Manual
PDF
What is Gradle?
Getting Started
Installing Gradle
Upgrading Gradle...
version 6.X to 7.0
version 5.X to 6.0
version 4.X to 5.0
Gradle's Feature Lifecycle
Migrating to Gradle...
from Maven
from Ant
Compatibility Notes
Troubleshooting Builds
Running Gradle Builds
Customizing Execution
Configuring the Build Environment
Configuring the Gradle Daemon
Using Initialization Scripts
Executing Multi-Project Builds
Inspecting Gradle Builds
Using the Build Cache
Enabling and Configuring
Why use the Build Cache?
Understanding the Impact
Learning Basic Concepts
Caching Java Project
Caching Android Project
Debugging Caching Issues
Troubleshooting
Optimizing Build Times
Improving Performance of Gradle Builds
Using the Configuration Cache
Authoring Gradle Builds
Learning the Basics
Writing Build Scripts
Working with Tasks
Learning More About Build Scripts
Working with Files
Using Gradle Plugins
Understanding the Build Lifecycle
Working with Logging
Avoiding Traps
Structuring Individual Builds
Creating a Basic Multi-Project Build
Declaring Dependencies between Subprojects
Sharing Build Logic between Subprojects
Fine Tuning the Project Layout
Understanding Configuration and Execution
Structuring Software Products
Structuring Large Projects
Tweaking Project Structure
Composing Builds
Authoring Sustainable Builds
Organizing Build Logic
Following Best Practices
Advanced Techniques
Testing a Build with TestKit
Using Ant from Gradle
Authoring JVM Builds
Building Java & JVM projects
Testing Java & JVM projects
Toolchains for Java projects
Managing Dependencies
JVM Plugins
Java Library Plugin
Java Application Plugin
Java Platform Plugin
Groovy Plugin
Scala Plugin
Working with Dependencies
Learning the Basics
What is Dependency Management?
Declaring Repositories
Declaring Dependencies
Understanding Library and Application Differences
Viewing and Debugging Dependencies
Understanding Resolution
Verifying dependencies
Declaring Versions
Declaring Versions and Ranges
Declaring Rich Versions
Handling Changing Versions
Locking Versions
Controlling Transitives
Upgrading Versions
Downgrading and Excluding
Sharing Versions
Aligning Dependencies
Handling Mutually Exclusive Dependencies
Fixing Metadata
Customizing Resolution
Preventing accidental upgrades
Producing and Consuming Variants of Libraries
Declaring Capabilities of a Library
Modeling Feature Variants and Optional Dependencies
Understanding Variant Selection
Declaring Variant Attributes
Sharing Outputs of Projects
Transforming Artifacts
Publishing Libraries
Setting up Publishing
Understanding Gradle Module Metadata
Signing Artifacts
Customizing Publishing
Maven Publish Plugin
Ivy Publish Plugin
Terminology
Authoring C++/Swift Builds
Building C++ projects
Testing C++ projects
Building Swift projects
Testing Swift projects
Extending Gradle
Developing Gradle Plugins
Starting Plugin Development
Designing Plugins
Implementing Plugins
Testing Plugins
Publishing Plugins
Developing Gradle Tasks
Writing Gradle Task Types
Configuring Tasks Lazily
Avoiding Unnecessary Task Configuration
Developing Parallel Tasks
Writing Custom Gradle Types
Reference
Core Plugins
Command-Line Interface
Gradle & Third-party Tools
Third-party Tools
Jenkins
TeamCity
Travis CI
The Gradle Wrapper
Gradle-managed Directories