# Package org.gradle.api.plugins

The standard `Plugin` implementations.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  AppliedPlugin | Represents a plugin that has been applied.
  Convention | A `Convention` manages a set of convention objects.
  ExtensionAware | Objects that can be extended at runtime with other objects.
  ExtensionContainer | Allows adding 'namespaced' DSL extensions to a target object.
  ExtraPropertiesExtension | Additional, ad-hoc, properties for Gradle domain objects.
  MavenRepositoryHandlerConvention | Allows Maven repositories for publishing artifacts to be defined.
  ObjectConfigurationAction | An `ObjectConfigurationAction` allows you to apply `Plugin`s and scripts to an object or objects.
  PluginAware | Something that can have plugins applied to it.
  PluginCollection<T extends Plugin> | A `PluginCollection` represents a collection of `Plugin` instances.
  PluginContainer | A `PluginContainer` is used to manage a set of `Plugin` instances applied to a particular project.
  PluginManager | Facilitates applying plugins and determining which plugins have been applied to a `PluginAware` object.

- Class Summary
  Class | Description
  --- | ---
  ApplicationPlugin | A `Plugin` which runs a project as a Java Application.
  ApplicationPluginConvention | The `Convention` used for configuring the `ApplicationPlugin`.
  BasePlugin | A `Plugin` which defines a basic project lifecycle and some common convention properties.
  BasePluginConvention | A `Convention` used for the BasePlugin.
  GroovyBasePlugin | Extends `JavaBasePlugin` to provide support for compiling and documenting Groovy source files.
  GroovyPlugin | A `Plugin` which extends the `JavaPlugin` to provide support for compiling and documenting Groovy source files.
  HelpTasksPlugin | Adds various reporting tasks that provide information about the project.
  JavaBasePlugin | A `Plugin` which compiles and tests Java source, and assembles it into a JAR file.
  JavaLibraryDistributionPlugin | A `Plugin` which package a Java project as a distribution including the JAR and runtime dependencies.
  JavaLibraryPlugin | A `Plugin` which extends the capabilities of the `Java plugin` by cleanly separating the API and implementation dependencies of a library.
  JavaPlugin | A `Plugin` which compiles and tests Java source, and assembles it into a JAR file.
  JavaPluginConvention | Is mixed into the project when applying the `JavaBasePlugin` or the `JavaPlugin`.
  MavenPlugin | A `Plugin` which allows project artifacts to be deployed to a Maven repository, or installed to the local Maven cache.
  MavenPluginConvention | Properties and methods added by the `MavenPlugin`.
  ProjectReportsPlugin | A `Plugin` which adds some project visualization report tasks to a project.
  ProjectReportsPluginConvention | The conventional configuration for the `ProjectReportsPlugin`.
  ReportingBasePlugin | A `Plugin` which provides the basic skeleton for reporting.
  WarPlugin | A `Plugin` which extends the `JavaPlugin` to add tasks which assemble a web application into a WAR file.
  WarPluginConvention | A `Convention` used for the WarPlugin.

- Exception Summary
  Exception | Description
  --- | ---
  ExtraPropertiesExtension.UnknownPropertyException | The exception that will be thrown when an attempt is made to read a property that is not set.
  InvalidPluginException | Thrown when a plugin is found to be invalid when it is loaded.
  PluginInstantiationException | A `PluginInstantiationException` is thrown when a plugin cannot be instantiated.
  UnknownPluginException | A `UnknownPluginException` is thrown when an unknown plugin id is provided.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  DeferredConfigurable | Indicates that the annotated object is designed to be configured only once, and that changes to configuration inputs made after configuration should not be allowed.

## Package org.gradle.api.plugins Description

The standard `Plugin` implementations.