org.gradle.api

## Interface Plugin<T>

- Type Parameters:
    `T` - The type of object which this plugin can configure.
  All Known Implementing Classes:
    org.gradle.api.plugins.quality.internal.AbstractCodeQualityPlugin, AnnouncePlugin, AntlrPlugin, ApplicationPlugin, AssemblerLangPlugin, AssemblerPlugin, BasePlugin, BinaryBasePlugin, BuildAnnouncementsPlugin, BuildDashboardPlugin, BuildInitPlugin, CheckstylePlugin, ClangCompilerPlugin, CLangPlugin, CodeNarcPlugin, CoffeeScriptBasePlugin, CompareGradleBuildsPlugin, ComponentBasePlugin, ComponentModelBasePlugin, CPlugin, CppLangPlugin, CppPlugin, CUnitConventionPlugin, CUnitPlugin, DistributionPlugin, EarPlugin, EnvJsPlugin, FindBugsPlugin, GccCompilerPlugin, GoogleTestConventionPlugin, GoogleTestPlugin, GroovyBasePlugin, GroovyPlugin, HelpTasksPlugin, IvyPublishPlugin, JacocoPlugin, JavaBasePlugin, JavaLanguagePlugin, JavaLibraryDistributionPlugin, JavaPlugin, JavaScriptBasePlugin, JDependPlugin, JettyPlugin, JsHintPlugin, JUnitTestSuitePlugin, JvmComponentPlugin, JvmResourcesPlugin, LanguageBasePlugin, LifecycleBasePlugin, MavenPlugin, MavenPublishPlugin, MicrosoftVisualCppCompilerPlugin, NativeBinariesTestPlugin, NativeComponentModelPlugin, NativeComponentPlugin, ObjectiveCLangPlugin, ObjectiveCPlugin, ObjectiveCppLangPlugin, ObjectiveCppPlugin, OsgiPlugin, PlayApplicationPlugin, PlayCoffeeScriptPlugin, PlayIdePlugin, PlayJavaScriptPlugin, PlayPlugin, PmdPlugin, ProjectReportsPlugin, PublishingPlugin, ReportingBasePlugin, RhinoPlugin, ScalaBasePlugin, ScalaLanguagePlugin, ScalaPlugin, SigningPlugin, 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