# Package org.gradle.api

## Package org.gradle.api Description

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

- org.gradle.api.Project
- org.gradle.api.Task

- Interface Summary
  Interface | Description
  --- | ---
  Action | Performs some action against objects of type T.
  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.
  DomainObjectCollection |
  DomainObjectSet |
  ExtensiblePolymorphicDomainObjectContainer | A PolymorphicDomainObjectContainer that can be extended at runtime to create elements of new types.
  Named | Types can implement this interface and use the embedded Namer implementation, to satisfy API that calls for a namer.
  NamedDomainObjectCollection |
  NamedDomainObjectContainer |
  NamedDomainObjectFactory | A factory for named objects of type `T`.
  NamedDomainObjectList |
  NamedDomainObjectSet |
  Namer | A namer is capable of providing a name based on some inherent characteristic of an object.
  Plugin |
  PolymorphicDomainObjectContainer | A NamedDomainObjectContainer that allows to create domain objects with different types.
  Project |
  ProjectEvaluationListener |
  ProjectState | `ProjectState` provides information about the execution state of a project.
  Rule |
  Script |
  Task |
  Transformer |
  XmlProvider | Provides various ways to access the content of an XML document.

- Class Summary
  Class | Description
  --- | ---
  AntBuilder |
  DefaultTask | `DefaultTask` is the standard Task implementation.
  Named.Namer | An implementation of the namer interface for objects implementing the named interface.
  Namer.Comparator | A comparator implementation based on the names returned by the given namer.
  Task.Namer | A Namer namer for tasks that returns getName().

- Enum Summary
  Enum | Description
  --- | ---
  JavaVersion | An enumeration of Java versions.
  PathValidation | An enumeration for describing validation policies for file paths.

- Exception Summary
  Exception | Description
  --- | ---
  BuildCancelledException |
  CircularReferenceException |
  GradleException |
  GradleScriptException |
  IllegalDependencyNotation | This exceptions is thrown, if a dependency is declared with a illegal notation.
  InvalidActionClosureException | Thrown when a groovy.lang.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.
  ProjectConfigurationException | Indicates a problem that occurs during project configuration (evaluation) phase.
  UncheckedIOException | `UncheckedIOException` is used to wrap an IOException into an unchecked exception.
  UnknownDomainObjectException |
  UnknownProjectException |
  UnknownTaskException |

- Annotation Type Summary
  Annotation Type | Description
  --- | ---
  Incubating | Indicates that a feature is incubating.
  NonExtensible | Indicates that the type, when DSL enhanced, does not support extensibility.
  Nullable | Indicates that the value of an element can be null.