# Package-level declarations

Gradle's build language API, which is available from your build files. Location of the main interfaces involved in build scripts.

## Types

Action
Link copied to clipboard
@HasImplicitReceiver
interface Action<T>
Performs some action against objects of type T.
ActionConfiguration
Link copied to clipboard
interface ActionConfiguration
Allows specification of configuration for some action.
AntBuilder
Link copied to clipboard
abstract class AntBuilder : AntBuilder
An `AntBuilder` allows you to use Ant from your build script.
Buildable
Link copied to clipboard
interface Buildable
A `Buildable` represents an artifact or set of artifacts which are built by one or more Task instances.
BuildableComponentSpec
Link copied to clipboard
@Incubating
interface BuildableComponentSpec : Buildable, ComponentSpec
A ComponentSpec that is directly Buildable via a specified task.
BuildCancelledException
Link copied to clipboard
open class BuildCancelledException : GradleException
A `BuildCancelledException` is thrown when a build is interrupted due to cancellation request.
CheckableComponentSpec
Link copied to clipboard
@Incubating
interface CheckableComponentSpec : ComponentSpec
A ComponentSpec that is directly checkable via a specified task.
CircularReferenceException
Link copied to clipboard
open class CircularReferenceException : GradleException
A `CircularReferenceException` is thrown if circular references exists between tasks, the project evaluation order or the project dependsOn order.
DefaultTask
Link copied to clipboard
@DisableCachingByDefault(because = "Gradle would require more information to cache this task")
abstract class DefaultTask : AbstractTask, Task
`DefaultTask` is the standard Task implementation.
Describable
Link copied to clipboard
interface Describable
Types can implement this interface when they provide a human-readable display name.
DomainObjectCollection
Link copied to clipboard
interface DomainObjectCollection<T> : Collection<E>
A `DomainObjectCollection` is a specialised Collection that adds the ability to receive modification notifications and use live filtered sub collections.
DomainObjectSet
Link copied to clipboard
interface DomainObjectSet<T> : DomainObjectCollection<T> , Set<E>
A `DomainObjectSet` is a specialization of DomainObjectCollection that guarantees Set semantics.
ExtensiblePolymorphicDomainObjectContainer
Link copied to clipboard
interface ExtensiblePolymorphicDomainObjectContainer<T> : PolymorphicDomainObjectContainer<T> , NamedDomainObjectFactoryRegistry<T>
A org.gradle.api.PolymorphicDomainObjectContainer that can be extended at runtime to create elements of new types.
Generated
Link copied to clipboard
@Retention(value = RetentionPolicy.CLASS)
@Target(value = ElementType.TYPE)
@Documented
annotation class Generated
Indicates that the annotated member code was generated.
GradleException
Link copied to clipboard
open class GradleException : RuntimeException
`GradleException` is the base class of all exceptions thrown by Gradle.
GradleScriptException
Link copied to clipboard
open class GradleScriptException : GradleException
A `GradleScriptException` is thrown when an exception occurs in the compilation or execution of a script.
HasImplicitReceiver
Link copied to clipboard
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = ElementType.TYPE)
annotation class HasImplicitReceiver
Marks a SAM interface as a target for lambda expressions / closures where the single parameter is passed as the implicit receiver of the invocation (`this` in Kotlin, `delegate` in Groovy) as if the lambda expression was an extension method of the parameter type.
IllegalDependencyNotation
Link copied to clipboard
open class IllegalDependencyNotation : GradleException
This exceptions is thrown, if a dependency is declared with a illegal notation.
Incubating
Link copied to clipboard
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = [ElementType.PACKAGE, ElementType.TYPE, ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD])
annotation class Incubating
Indicates that a feature is incubating.
InvalidActionClosureException
Link copied to clipboard
open class InvalidActionClosureException : GradleException
Thrown when a Closure is given as an Action implementation, but has the wrong signature.
InvalidUserCodeException
Link copied to clipboard
open class InvalidUserCodeException : GradleException
A `InvalidUserCodeException` is thrown when user-provided code cannot be executed.
InvalidUserDataException
Link copied to clipboard
open class InvalidUserDataException : GradleException
A `InvalidUserDataException` is thrown, if a user is providing illegal data for the build.
IsolatedAction
Link copied to clipboard
@HasImplicitReceiver
@Incubating
interface IsolatedAction<T> : Serializable
Defines an action that is applied to objects of type T, with each target getting its own isolated action instance.
JavaVersion
Link copied to clipboard
enum JavaVersion
An enumeration of Java versions.
Named
Link copied to clipboard
interface Named
Types can implement this interface and use the embedded Namer implementation, to satisfy API that calls for a namer.
NamedDomainObjectCollection
Link copied to clipboard
interface NamedDomainObjectCollection<T> : DomainObjectCollection<T>
A `NamedDomainObjectCollection` represents a collection of objects that have an inherent, constant, name.
NamedDomainObjectCollectionSchema
Link copied to clipboard
interface NamedDomainObjectCollectionSchema
Schema of named domain object collections.
NamedDomainObjectContainer
Link copied to clipboard
interface NamedDomainObjectContainer<T> : NamedDomainObjectSet<T> , Configurable<T>
A named domain object container is a specialization of NamedDomainObjectSet that adds the ability to create instances of the element type.
NamedDomainObjectFactory
Link copied to clipboard
interface NamedDomainObjectFactory<T>
A factory for named objects of type `T`.
NamedDomainObjectList
Link copied to clipboard
interface NamedDomainObjectList<T> : NamedDomainObjectCollection<T> , List<E>
A specialization of org.gradle.api.NamedDomainObjectCollection that also implements java.util.List.
NamedDomainObjectProvider
Link copied to clipboard
interface NamedDomainObjectProvider<T> : Provider<T>
Provides a domain object of the given type.
NamedDomainObjectSet
Link copied to clipboard
interface NamedDomainObjectSet<T> : NamedDomainObjectCollection<T> , DomainObjectSet<T>
A specialization of NamedDomainObjectCollection that also implements Set and orders objects by their inherent name.
Namer
Link copied to clipboard
interface Namer<T>
A namer is capable of providing a name based on some inherent characteristic of an object.
NonExtensible
Link copied to clipboard
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
@Inherited
@Target(value = [ElementType.TYPE])
annotation class NonExtensible
Indicates that the type, when DSL enhanced, does not support extensibility.
NonNullApi
Link copied to clipboard
@Target(value = [ElementType.TYPE, ElementType.PACKAGE])
@NotNull
@Nonnull
@TypeQualifierDefault(value = [ElementType.METHOD, ElementType.PARAMETER])
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
annotation class NonNullApi
Marks a type or a whole package as providing a non-null API by default.
PathValidation
Link copied to clipboard
enum PathValidation
An enumeration for describing validation policies for file paths.
Plugin
Link copied to clipboard
interface Plugin<T>
A `Plugin` represents an extension to Gradle.
PolymorphicDomainObjectContainer
Link copied to clipboard
interface PolymorphicDomainObjectContainer<T> : NamedDomainObjectContainer<T>
A NamedDomainObjectContainer that allows you to create objects with different types.
Project
Link copied to clipboard
interface Project : Comparable<T> , ExtensionAware, PluginAware
This interface is the main API you use to interact with Gradle from your build file.
ProjectConfigurationException
Link copied to clipboard
open class ProjectConfigurationException : DefaultMultiCauseException
Indicates a problem that occurs during project configuration.
ProjectEvaluationListener
Link copied to clipboard
interface ProjectEvaluationListener
An `ProjectEvaluationListener` is notified when a project is evaluated.
ProjectState
Link copied to clipboard
interface ProjectState
`ProjectState` provides information about the execution state of a project.
Rule
Link copied to clipboard
interface Rule
A `Rule` represents some action to perform when an unknown domain object is referenced.
Script
Link copied to clipboard
interface Script
This interface is implemented by all Gradle Groovy DSL scripts to add in some Gradle-specific methods.
SupportsKotlinAssignmentOverloading
Link copied to clipboard
@Documented
@Retention(value = RetentionPolicy.RUNTIME)
@Target(value = ElementType.TYPE)
annotation class SupportsKotlinAssignmentOverloading
Marks interface that works with overloaded Kotlin assignment.
Task
Link copied to clipboard
interface Task : Comparable<T> , ExtensionAware, Named
A `Task` represents a single atomic piece of work for a build, such as compiling classes or generating javadoc.
Transformer
Link copied to clipboard
interface Transformer<OUT, IN>
A `Transformer` transforms objects of type.
UncheckedIOException
Link copied to clipboard
open class UncheckedIOException : RuntimeException
`UncheckedIOException` is used to wrap an java.io.IOException into an unchecked exception.
UnknownDomainObjectException
Link copied to clipboard
open class UnknownDomainObjectException : GradleException
A `UnknownDomainObjectException` is the super class of all exceptions thrown when a given domain object cannot be located.
UnknownProjectException
Link copied to clipboard
open class UnknownProjectException : UnknownDomainObjectException
An `UnknownProjectException` is thrown when a project referenced by path cannot be found.
UnknownTaskException
Link copied to clipboard
open class UnknownTaskException : UnknownDomainObjectException
An `UnknownTaskException` is thrown when a task referenced by path cannot be found.
XmlProvider
Link copied to clipboard
interface XmlProvider
Provides various ways to access the content of an XML document.