Package 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`, `JavaPlatformPlugin`, `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`, `SwiftPackageManagerExportPlugin`, `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 | 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