<plugins>
    <plugin id="java" description="Java Plugin">
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.BasePluginConvention"/>
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.JavaPluginConvention"/>
        <extends targetClass="org.gradle.api.Project" id="reporting" extensionClass="org.gradle.api.reporting.ReportingExtension"/>
    </plugin>
    <plugin id="groovy" description="Groovy Plugin">
        <extends targetClass="org.gradle.api.tasks.SourceSet" mixinClass="org.gradle.api.tasks.GroovySourceSet"/>
    </plugin>
    <plugin id="publishing" description="Publishing Plugin">
        <extends targetClass="org.gradle.api.Project" id="publishing" extensionClass="org.gradle.api.publish.PublishingExtension"/>
    </plugin>
    <plugin id="scala" description="Scala Plugin">
        <extends targetClass="org.gradle.api.tasks.SourceSet" mixinClass="org.gradle.api.tasks.ScalaSourceSet"/>
    </plugin>
    <plugin id="antlr" description="Antlr Plugin">
        <extends targetClass="org.gradle.api.tasks.SourceSet" mixinClass="org.gradle.api.plugins.antlr.AntlrSourceVirtualDirectory"/>
    </plugin>
    <plugin id="maven" description="Maven Plugin">
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.MavenPluginConvention"/>
        <extends targetClass="org.gradle.api.artifacts.dsl.RepositoryHandler" mixinClass="org.gradle.api.plugins.MavenRepositoryHandlerConvention"/>
    </plugin>
    <plugin id="war" description="War Plugin">
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.WarPluginConvention"/>
    </plugin>
    <plugin id="ear" description="Ear Plugin">
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.plugins.ear.EarPluginConvention"/>
    </plugin>
    <plugin id="jetty" description="Jetty Plugin">
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.jetty.JettyPluginConvention"/>
    </plugin>
    <plugin id="project-report" description="Project Report Plugin">
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.ProjectReportsPluginConvention"/>
    </plugin>
    <plugin id="announce" description="Announce Plugin">
        <extends targetClass="org.gradle.api.Project" id="announce" extensionClass="org.gradle.api.plugins.announce.AnnouncePluginExtension"/>
    </plugin>
    <plugin id="osgi" description="OSGi Plugin">
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.osgi.OsgiPluginConvention"/>
    </plugin>
    <plugin id="application" description="Application Plugin">
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.ApplicationPluginConvention"/>
    </plugin>
    <plugin id="distribution" description="Distribution Plugin">
        <extends targetClass="org.gradle.api.Project" id="distributions" extensionClass="org.gradle.api.distribution.DistributionContainer"/>
    </plugin>
    <plugin id="java-library-distribution" description="Java Library Distribution Plugin"/>
    <plugin id="signing" description="Signing Plugin">
        <extends targetClass="org.gradle.api.Project" id="signing" extensionClass="org.gradle.plugins.signing.SigningExtension"/>
    </plugin>
    <plugin id="eclipse" description="Eclipse Plugin">
        <extends targetClass="org.gradle.api.Project" id="eclipse" extensionClass="org.gradle.plugins.ide.eclipse.model.EclipseModel"/>
    </plugin>
    <plugin id="idea" description="Idea Plugin">
        <extends targetClass="org.gradle.api.Project" id="idea" extensionClass="org.gradle.plugins.ide.idea.model.IdeaModel"/>
    </plugin>
    <plugin id="checkstyle" description="Checkstyle Plugin">
        <extends targetClass="org.gradle.api.Project" id="checkstyle" extensionClass="org.gradle.api.plugins.quality.CheckstyleExtension"/>
    </plugin>
    <plugin id="codenarc" description="CodeNarc Plugin">
        <extends targetClass="org.gradle.api.Project" id="codenarc" extensionClass="org.gradle.api.plugins.quality.CodeNarcExtension"/>
    </plugin>
    <plugin id="findbugs" description="FindBugs Plugin">
        <extends targetClass="org.gradle.api.Project" id="findbugs" extensionClass="org.gradle.api.plugins.quality.FindBugsExtension"/>
    </plugin>
    <plugin id="pmd" description="PMD Plugin">
        <extends targetClass="org.gradle.api.Project" id="pmd" extensionClass="org.gradle.api.plugins.quality.PmdExtension"/>
    </plugin>
    <plugin id="jdepend" description="JDepend Plugin">
        <extends targetClass="org.gradle.api.Project" id="jdepend" extensionClass="org.gradle.api.plugins.quality.JDependExtension"/>
    </plugin>
    <plugin id="jacoco" description="JaCoCo Plugin">
        <extends targetClass="org.gradle.api.Project" id="jacoco" extensionClass="org.gradle.testing.jacoco.plugins.JacocoPluginExtension"/>
        <extends targetClass="org.gradle.api.tasks.testing.Test" id="jacoco" extensionClass="org.gradle.testing.jacoco.plugins.JacocoTaskExtension"/>
    </plugin>
    <plugin id="LanguageBasePlugin" description="Language Base Plugin">
        <extends targetClass="org.gradle.api.Project" id="projectComponents" extensionClass="org.gradle.platform.base.ComponentSpecContainer"/>
        <extends targetClass="org.gradle.api.Project" id="binaries" extensionClass="org.gradle.platform.base.BinaryContainer"/>
        <extends targetClass="org.gradle.api.Project" id="sources" extensionClass="org.gradle.language.base.ProjectSourceSet"/>
    </plugin>
    <plugin id="jvm-component" description="JVM Component Model Plugin">
        <extends targetClass="org.gradle.api.Project" id="jvm" extensionClass="org.gradle.jvm.JvmComponentExtension"/>
    </plugin>
    <plugin id="native-component" description="Native Component Model Plugin"></plugin>
    <plugin id="cpp" description="C++ Plugin">
        <extends targetClass="org.gradle.nativeplatform.NativeBinary" id="cppCompiler" extensionClass="org.gradle.language.PreprocessingTool"/>
    </plugin>
    <plugin id="c" description="C Plugin">
        <extends targetClass="org.gradle.nativeplatform.NativeBinary" id="cCompiler" extensionClass="org.gradle.language.PreprocessingTool"/>
    </plugin>
    <plugin id="assembler" description="Assembler Plugin">
        <extends targetClass="org.gradle.nativeplatform.NativeBinary" id="assembler" extensionClass="org.gradle.nativeplatform.Tool"/>
    </plugin>
    <plugin id="objective-c" description="Objective-C Plugin">
        <extends targetClass="org.gradle.nativeplatform.NativeBinary" id="objectiveCCompiler" extensionClass="org.gradle.language.PreprocessingTool"/>
    </plugin>
    <plugin id="objective-cpp" description="Objective-C++ Plugin">
        <extends targetClass="org.gradle.nativeplatform.NativeBinary" id="objectiveCppCompiler" extensionClass="org.gradle.language.PreprocessingTool"/>
    </plugin>
    <plugin id="windows-resources" description="Windows Resources Plugin">
        <extends targetClass="org.gradle.nativeplatform.NativeBinary" id="rcCompiler" extensionClass="org.gradle.language.PreprocessingTool"/>
    </plugin>
    <plugin id="visual-studio" description="Visual Studio Plugin">
        <extends targetClass="org.gradle.api.Project" id="visualStudio" extensionClass="org.gradle.ide.visualstudio.VisualStudioExtension"/>
    </plugin>
    <plugin id="sonar-runner" description="Sonar Runner Plugin">
        <extends targetClass="org.gradle.api.Project" id="sonarRunner" extensionClass="org.gradle.sonar.runner.SonarRunnerExtension"/>
        <extends targetClass="org.gradle.api.Project" id="sonarRunner" extensionClass="org.gradle.sonar.runner.SonarRunnerRootExtension"/>
    </plugin>
</plugins>
