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`, `AntlrPlugin`, `ApplicationPlugin`, `AssemblerLangPlugin`, `AssemblerPlugin`, `BasePlugin`, `BinaryBasePlugin`, `BuildDashboardPlugin`, `BuildInitPlugin`, `CheckstylePlugin`, `ClangCompilerPlugin`, `CLangPlugin`, `CodeNarcPlugin`, `ComponentBasePlugin`, `ComponentModelBasePlugin`, `CPlugin`, `CppApplicationPlugin`, `CppBasePlugin`, `CppLangPlugin`, `CppLibraryPlugin`, `CppPlugin`, `CppUnitTestPlugin`, `CUnitConventionPlugin`, `CUnitPlugin`, `DistributionBasePlugin`, `DistributionPlugin`, `EarPlugin`, `EclipsePlugin`, `EclipseWtpPlugin`, `GccCompilerPlugin`, `GoogleTestConventionPlugin`, `GoogleTestPlugin`, `GroovyBasePlugin`, `GroovyPlugin`, `HelpTasksPlugin`, `IdeaPlugin`, `org.gradle.plugins.ide.internal.IdePlugin`, `IvyPluginPublishingPlugin`, `IvyPublishPlugin`, `JacocoPlugin`, `JacocoReportAggregationPlugin`, `JavaBasePlugin`, `JavaGradlePluginPlugin`, `JavaLibraryDistributionPlugin`, `JavaLibraryPlugin`, `JavaPlatformPlugin`, `JavaPlugin`, `JavaTestFixturesPlugin`, `JvmEcosystemPlugin`, `JvmTestSuitePlugin`, `JvmToolchainManagementPlugin`, `JvmToolchainsPlugin`, `LanguageBasePlugin`, `LifecycleBasePlugin`, `MavenPluginPublishPlugin`, `MavenPublishPlugin`, `MicrosoftVisualCppCompilerPlugin`, `NativeBasePlugin`, `NativeBinariesTestPlugin`, `NativeComponentModelPlugin`, `NativeComponentPlugin`, `NativeTestingBasePlugin`, `ObjectiveCLangPlugin`, `ObjectiveCPlugin`, `ObjectiveCppLangPlugin`, `ObjectiveCppPlugin`, `PmdPlugin`, `ProjectReportsPlugin`, `PublishingPlugin`, `ReportingBasePlugin`, `ScalaBasePlugin`, `ScalaPlugin`, `SigningPlugin`, `SoftwareReportingTasksPlugin`, `SwiftApplicationPlugin`, `SwiftBasePlugin`, `SwiftCompilerPlugin`, `SwiftLibraryPlugin`, `SwiftPackageManagerExportPlugin`, `TestingBasePlugin`, `TestingModelBasePlugin`, `TestReportAggregationPlugin`, `TestSuiteBasePlugin`, `VersionCatalogPlugin`, `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