org.gradle.api

## Interface Plugin<T>

- Type Parameters:
    `T` - The type of object which this plugin can configure.
  All Known Implementing Classes:
    AntlrPlugin, AssemblerLangPlugin, AssemblerPlugin, BasePlugin, BinaryBasePlugin, BuildDashboardPlugin, BuildInitPlugin, ClangCompilerPlugin, CLangPlugin, ComponentBasePlugin, ComponentModelBasePlugin, CPlugin, CppLangPlugin, CppPlugin, CUnitConventionPlugin, CUnitPlugin, EarPlugin, GccCompilerPlugin, GoogleTestConventionPlugin, GoogleTestPlugin, GroovyBasePlugin, GroovyPlugin, HelpTasksPlugin, IvyPublishPlugin, JavaBasePlugin, JavaLanguagePlugin, JavaPlugin, JettyPlugin, JUnitTestSuitePlugin, JvmComponentPlugin, JvmResourcesPlugin, LanguageBasePlugin, LifecycleBasePlugin, MavenPlugin, MavenPublishPlugin, MicrosoftVisualCppPlugin, NativeBinariesTestPlugin, NativeComponentModelPlugin, NativeComponentPlugin, ObjectiveCLangPlugin, ObjectiveCPlugin, ObjectiveCppLangPlugin, ObjectiveCppPlugin, PlayApplicationPlugin, PlayCoffeeScriptPlugin, PlayJavaScriptPlugin, PlayPlugin, ProjectReportsPlugin, PublishingPlugin, ReportingBasePlugin, ScalaLanguagePlugin, SonarRunnerPlugin, TestingModelBasePlugin, VisualStudioPlugin, WarPlugin, WindowsResourceScriptPlugin, WindowsResourcesPlugin, WrapperPlugin

      public interface Plugin<T>

  A `Plugin` represents an extension to Gradle. A plugin applies some configuration to a target object. Usually, this target object is a `Project`, but plugins can be applied to any type of objects.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `apply(T target)` Apply this plugin to the given target object.

- - ### Method Detail

    - #### apply

          void apply(T target)

      Apply this plugin to the given target object.
      Parameters:
        `target` - The target object