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, CppApplicationPlugin, CppBasePlugin, CppLangPlugin, CppLibraryPlugin, CppPlugin, CppUnitTestPlugin, CUnitConventionPlugin, CUnitPlugin, DistributionPlugin, EarPlugin, EclipsePlugin, EclipseWtpPlugin, EnvJsPlugin, FindBugsPlugin, GccCompilerPlugin, GoogleTestConventionPlugin, GoogleTestPlugin, GroovyBasePlugin, GroovyPlugin, HelpTasksPlugin, IdeaPlugin, org.gradle.plugins.ide.internal.IdePlugin, IvyPublishPlugin, JacocoPlugin, JavaBasePlugin, JavaGradlePluginPlugin, JavaLanguagePlugin, JavaLibraryDistributionPlugin, JavaLibraryPlugin, JavaPlugin, JavaScriptBasePlugin, JDependPlugin, JsHintPlugin, JUnitTestSuitePlugin, JvmComponentPlugin, JvmResourcesPlugin, LanguageBasePlugin, LifecycleBasePlugin, MavenPlugin, MavenPublishPlugin, MicrosoftVisualCppCompilerPlugin, NativeBasePlugin, NativeBinariesTestPlugin, NativeComponentModelPlugin, NativeComponentPlugin, NativeTestingBasePlugin, ObjectiveCLangPlugin, ObjectiveCPlugin, ObjectiveCppLangPlugin, ObjectiveCppPlugin, OsgiPlugin, PlayApplicationPlugin, PlayCoffeeScriptPlugin, PlayIdePlugin, PlayJavaScriptPlugin, PlayPlugin, PmdPlugin, ProjectReportsPlugin, PublishingPlugin, ReportingBasePlugin, RhinoPlugin, ScalaBasePlugin, ScalaLanguagePlugin, ScalaPlugin, SigningPlugin, SwiftApplicationPlugin, SwiftBasePlugin, SwiftCompilerPlugin, SwiftLibraryPlugin, TestingBasePlugin, TestingModelBasePlugin, VisualStudioPlugin, WarPlugin, WindowsResourceScriptPlugin, WindowsResourcesPlugin, WrapperPlugin, XcodePlugin, XCTestConventionPlugin

      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

    All Methods Instance Methods Abstract 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