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`, `CppBasePlugin`, `CppExecutablePlugin`, `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`, `NativeBinariesTestPlugin`, `NativeComponentModelPlugin`, `NativeComponentPlugin`, `ObjectiveCLangPlugin`, `ObjectiveCPlugin`, `ObjectiveCppLangPlugin`, `ObjectiveCppPlugin`, `OsgiPlugin`, `PlayApplicationPlugin`, `PlayCoffeeScriptPlugin`, `PlayIdePlugin`, `PlayJavaScriptPlugin`, `PlayPlugin`, `PmdPlugin`, `ProjectReportsPlugin`, `PublishingPlugin`, `ReportingBasePlugin`, `RhinoPlugin`, `ScalaBasePlugin`, `ScalaLanguagePlugin`, `ScalaPlugin`, `SigningPlugin`, `SwiftBasePlugin`, `SwiftCompilerPlugin`, `SwiftExecutablePlugin`, `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

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

## Method Details

### apply

void apply(T target)
Apply this plugin to the given target object.

Parameters:
  `target` - The target object