# 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