# Package org.gradle.api.plugins

## The standard Plugin implementations.

- Interface Summary
  Interface | Description
  --- | ---
  Convention |
  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 |
  PluginAware | Objects a Plugin can be applied to.
  PluginCollection |
  PluginContainer |

- Class Summary
  Class | Description
  --- | ---
  ApplicationPlugin |
  ApplicationPluginConvention |
  BasePlugin |
  BasePluginConvention |
  GroovyBasePlugin | Extends JavaBasePlugin to provide support for compiling and documenting Groovy source files.
  GroovyPlugin |
  HelpTasksPlugin | Adds various reporting tasks that provide information about the project.
  JavaBasePlugin |
  JavaLibraryDistributionPlugin | A Plugin which package a Java project as a distribution including the JAR and runtime dependencies.
  JavaPlugin |
  JavaPluginConvention | Is mixed in into the project when applying the JavaBasePlugin or the JavaPlugin.
  LegacyJavaComponentPlugin | Plugin for compiling Java code.
  MavenPlugin |
  MavenPluginConvention | Properties and methods added by the MavenPlugin.
  ProjectReportsPlugin |
  ProjectReportsPluginConvention |
  ReportingBasePlugin |
  WarPlugin |
  WarPluginConvention |

- 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 Type 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.