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, BuildDashboardPlugin, ClangCompilerPlugin, CLangPlugin, ComponentModelBasePlugin, CPlugin, CppLangPlugin, CppPlugin, CUnitPlugin, EarPlugin, GccCompilerPlugin, GroovyBasePlugin, GroovyPlugin, IvyPublishPlugin, JavaBasePlugin, JavaLanguagePlugin, JavaPlugin, JettyPlugin, JvmComponentPlugin, JvmResourcesPlugin, LanguageBasePlugin, LegacyJavaComponentPlugin, LifecycleBasePlugin, MavenPlugin, MavenPublishPlugin, MicrosoftVisualCppPlugin, NativeBinariesTestPlugin, NativeComponentModelPlugin, ObjectiveCLangPlugin, ObjectiveCPlugin, ObjectiveCppLangPlugin, ObjectiveCppPlugin, ProjectReportsPlugin, PublishingPlugin, ReportingBasePlugin, VisualStudioPlugin, WarPlugin, WindowsResourceScriptPlugin, WindowsResourcesPlugin

      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