Gradle provides many public APIs that allow developers to interact with various build system components.

Any class name containing Internal, or that is located in a package containing the segment .internal. is by definition not part of the public Gradle API and should not be relied upon for stable usage.

The following table summarizes public Gradle APIs and their common use cases. This is not an exhaustive list:

API Package Description Common Use Cases

org.gradle.api

Core Gradle API

- Defines key interfaces like Project, Task, and Plugin
- Used for configuring projects and tasks

org.gradle.authentication

Authentication API

- Handles authentication for repositories and services
- Supports username/password, OAuth, and other mechanisms

org.gradle.build

Build Lifecycle API

- Manages build phases and execution
- Useful for controlling the order of tasks

org.gradle.buildinit

Build Init API

- Used to generate new Gradle projects
- Supports bootstrapping various project types

org.gradle.caching

Build Cache API

- Provides mechanisms for storing and reusing build outputs
- Used for incremental builds and CI optimization

org.gradle.concurrent

Concurrent Execution API

- Manages parallel task execution
- Helps optimize Gradle build performance

org.gradle.deployment

Deployment API

- Supports managing and automating application deployments
- Useful for CI/CD pipelines

org.gradle.env

Environment Configuration API

- Provides access to environment variables and settings
- Used to configure builds based on external conditions

org.gradle.external.javadoc

Javadoc API

- Generates Javadoc for external dependencies
- Used in Java documentation workflows

org.gradle.ide

IDE Integration API

- Manages Gradle support for IDEs like IntelliJ and Eclipse
- Configures IDE project settings

org.gradle.includedbuild

Composite Builds API

- Enables dependency management across multiple Gradle builds
- Supports modular development

org.gradle.ivy

Ivy Dependency Management API

- Supports Ivy repositories and dependency resolution
- Alternative to Maven for dependency management

org.gradle.jvm

Java Virtual Machine API

- Manages JVM-based builds
- Includes toolchains and JDK selection

org.gradle.language

Language Plugins API

- Defines Gradle support for multiple languages (Java, Kotlin, etc.)
- Used in multi-language projects

org.gradle.maven

Maven Dependency Management API

- Supports Maven repositories and dependency resolution
- Commonly used for Java projects

org.gradle.nativeplatform

Native Platform API

- Provides support for C, C++, and other native builds
- Used in cross-platform development

org.gradle.normalization

Input Normalization API

- Helps optimize caching by defining input normalization rules
- Useful for improving incremental builds

org.gradle.platform

Platform Dependency Management API

- Defines and manages dependency constraints for platforms
- Useful in multi-module projects

org.gradle.play

Play Framework Support API

- Provides support for Play Framework projects
- Used for web application development

org.gradle.plugin.devel

Plugin Development API

- Supports writing and publishing custom Gradle plugins
- Used by plugin authors

org.gradle.plugin.repository

Plugin Repository API

- Defines repositories for Gradle plugins
- Used to fetch plugins from the Gradle Plugin Portal

org.gradle.plugin.use

Plugin Application API

- Handles plugin application in build scripts
- Simplifies plugin usage with plugins {} block

org.gradle.plugin.management

Plugin Management API

- Provides centralized management for Gradle plugins
- Helps configure plugin versions and repositories

org.gradle.plugins

Built-in Plugins API

- Includes Gradle’s built-in plugins (Java, Kotlin, etc.)
- Used for applying standard build logic

org.gradle.process

Process Management API

- Allows running external processes from Gradle tasks
- Useful for automation and script execution

org.gradle.testfixtures

Test Fixtures API

- Provides test utilities for Gradle plugin developers
- Helps with testing Gradle tasks and plugins

org.gradle.testing.jacoco

JaCoCo Test Coverage API

- Integrates with JaCoCo for code coverage reports
- Used for tracking test coverage in Java projects

org.gradle.tooling

Tooling API (TAPI)

- Allows external applications to interact with Gradle
- Used by IDEs and CI systems to run Gradle builds

org.gradle.swiftpm

Swift Package Manager API

- Provides Gradle integration with Swift Package Manager
- Used for managing Swift dependencies

org.gradle.model

Model Rule-based API

- Legacy API for configuring Gradle builds using models
- Replaced by modern Gradle DSLs

org.gradle.testkit

Gradle TestKit API

- Provides utilities for testing Gradle plugins
- Used to write functional tests for Gradle plugins

org.gradle.testing

Testing Framework API

- Defines testing frameworks for Gradle builds
- Supports JUnit, TestNG, and Spock

org.gradle.vcs

Version Control System API

- Allows dependencies to be fetched from VCS (Git, SVN)
- Used for managing source-based dependencies

org.gradle.work

Work Execution API

- Provides utilities for parallel and incremental task execution
- Helps optimize long-running Gradle tasks

org.gradle.workers

Worker API

- Enables parallel execution of Gradle tasks
- Used for running tasks in worker threads

org.gradle.util

Utility API

- Provides various utility functions used internally by Gradle
- Used for Gradle build logic and plugin development