<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.ReportingBasePluginConvention"/>
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.JavaPluginConvention"/>
    </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="code-quality" description="Code Quality Plugin">
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.quality.JavaCodeQualityPluginConvention"/>
        <extends targetClass="org.gradle.api.Project" mixinClass="org.gradle.api.plugins.quality.GroovyCodeQualityPluginConvention"/>
    </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="cpp" description="C++ Plugin">
        <extends targetClass="org.gradle.api.Project" id="toolChains" extensionClass="org.gradle.nativecode.base.ToolChainRegistry"/>
        <extends targetClass="org.gradle.api.Project" id="executables" extensionClass="org.gradle.nativecode.base.ExecutableContainer"/>
        <extends targetClass="org.gradle.api.Project" id="libraries" extensionClass="org.gradle.nativecode.base.LibraryContainer"/>
        <extends targetClass="org.gradle.api.Project" id="binaries" extensionClass="org.gradle.language.base.BinaryContainer"/>
    </plugin>
</plugins>
