# Package org.gradle.api

@NonNullApi package org.gradle.api

Start Here: Gradle's `Project` API, which is available from your build files. The API used from your build files is made up of 2 main interfaces:

- `Project`
- `Task`

Related Packages
Package
Description
org.gradle
Classes for embedding Gradle.
Class
Description
Action<T>
Performs some action against objects of type T.
ActionConfiguration
Allows specification of configuration for some action.
AntBuilder
An `AntBuilder` allows you to use Ant from your build script.
AntBuilder.AntMessagePriority
Represents the normal Ant message priorities.
Buildable
A `Buildable` represents an artifact or set of artifacts which are built by one or more `Task` instances.
BuildableComponentSpec
A `ComponentSpec` that is directly `Buildable` via a specified task.
BuildCancelledException
A `BuildCancelledException` is thrown when a build is interrupted due to cancellation request.
CheckableComponentSpec
A `ComponentSpec` that is directly checkable via a specified task.
CircularReferenceException
A `CircularReferenceException` is thrown if circular references exists between tasks, the project evaluation order or the project dependsOn order.
DefaultTask
`DefaultTask` is the standard `Task` implementation.
Describable
Types can implement this interface when they provide a human-readable display name.
DomainObjectCollection<T>
A `DomainObjectCollection` is a specialised `Collection` that adds the ability to modification notifications and live filtered sub collections.
DomainObjectSet<T>
A `DomainObjectSet` is a specialisation of `DomainObjectCollection` that guarantees `Set` semantics.
ExtensiblePolymorphicDomainObjectContainer<T>
A `PolymorphicDomainObjectContainer` that can be extended at runtime to create elements of new types.
GradleException
`GradleException` is the base class of all exceptions thrown by Gradle.
GradleScriptException
A `GradleScriptException` is thrown when an exception occurs in the compilation or execution of a script.
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
This exceptions is thrown, if a dependency is declared with a illegal notation.
Incubating
Indicates that a feature is incubating.
InvalidActionClosureException
Thrown when a `Closure` is given as an `Action` implementation, but has the wrong signature.
InvalidUserCodeException
A `InvalidUserCodeException` is thrown when user-provided code cannot be executed.
InvalidUserDataException
A `InvalidUserDataException` is thrown, if a user is providing illegal data for the build.
JavaVersion
An enumeration of Java versions.
Named
Types can implement this interface and use the embedded `Named.Namer` implementation, to satisfy API that calls for a namer.
Named.Namer
An implementation of the namer interface for objects implementing the named interface.
NamedDomainObjectCollection<T>
A `NamedDomainObjectCollection` represents a collection of domain objects that have an inherent, constant, name.
NamedDomainObjectContainer<T>
A named domain object container is a specialisation of `NamedDomainObjectSet` that adds the ability to create instances of the element type.
NamedDomainObjectFactory<T>
A factory for named objects of type `T`.
NamedDomainObjectList<T>
A specialisation of `NamedDomainObjectCollection` that also implements `List`.
NamedDomainObjectProvider<T>
Provides a domain object of the given type.
NamedDomainObjectSet<T>
A specialisation of `NamedDomainObjectCollection` that also implements `Set` and orders objects by their inherent name.
Namer<T>
A namer is capable of providing a name based on some inherent characteristic of an object.
Namer.Comparator<T>
A comparator implementation based on the names returned by the given namer.
NonExtensible
Indicates that the type, when DSL enhanced, does not support extensibility.
NonNullApi
Marks a type or a whole package as providing a non-null API by default.
Nullable
Deprecated.
Use `Nullable` instead.
PathValidation
An enumeration for describing validation policies for file paths.
Plugin<T>
A `Plugin` represents an extension to Gradle.
PolymorphicDomainObjectContainer<T>
A `NamedDomainObjectContainer` that allows to create domain objects with different types.
Project
This interface is the main API you use to interact with Gradle from your build file.
ProjectConfigurationException
Indicates a problem that occurs during project configuration (evaluation) phase.
ProjectEvaluationListener
An `ProjectEvaluationListener` is notified when a project is evaluated.
ProjectState
`ProjectState` provides information about the execution state of a project.
Rule
A `Rule` represents some action to perform when an unknown domain object is referenced.
Script
This interface is implemented by all Gradle scripts to add in some Gradle-specific methods.
Task
A `Task` represents a single atomic piece of work for a build, such as compiling classes or generating javadoc.
Task.Namer
A `Namer` namer for tasks that returns `Task.getName()`.
Transformer<OUT,IN>
A `Transformer` transforms objects of type.
UncheckedIOException
`UncheckedIOException` is used to wrap an `IOException` into an unchecked exception.
UnknownDomainObjectException
A `UnknownDomainObjectException` is the super class of all exceptions thrown when a given domain object cannot be located.
UnknownProjectException
An `UnknownProjectException` is thrown when a project referenced by path cannot be found.
UnknownTaskException
An `UnknownTaskException` is thrown when a task referenced by path cannot be found.
XmlProvider
Provides various ways to access the content of an XML document.