org.gradle.plugin.devel

## Class GradlePluginDevelopmentExtension

- java.lang.Object
- - org.gradle.plugin.devel.GradlePluginDevelopmentExtension

-     @Incubating
      public class GradlePluginDevelopmentExtension
      extends Object

  Configuration options for the `org.gradle.plugin.devel.plugins.JavaGradlePluginPlugin`.

  Below is a full configuration example. Since all properties have sensible defaults, typically only selected properties will be configured.

           apply plugin: "java-gradle-plugin"

           gradlePlugin {
               pluginSourceSet project.sourceSets.customMain
               testSourceSets project.sourceSets.functionalTest
               plugins {
                   helloPlugin {
                       id  = 'org.example.hello'
                       implementationClass = 'org.example.HelloPlugin'
                   }
               }
           }

  Since:
    2.13
  See Also:
    `org.gradle.plugin.devel.plugins.JavaGradlePluginPlugin`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `GradlePluginDevelopmentExtension(Project project, SourceSet pluginSourceSet, SourceSet testSourceSet)`
    `GradlePluginDevelopmentExtension(Project project, SourceSet pluginSourceSet, SourceSet[] testSourceSets)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `NamedDomainObjectContainer<PluginDeclaration>` | `getPlugins()` Returns the declared plugins.
    `SourceSet` | `getPluginSourceSet()` Returns the source set that compiles the code under test.
    `Set<SourceSet>` | `getTestSourceSets()` Returns the the source sets executing the functional tests with TestKit.
    `boolean` | `isAutomatedPublishing()` Whether the plugin should automatically configure the publications for the plugins.
    `void` | `plugins(Action<? super NamedDomainObjectContainer<PluginDeclaration>> action)` Configures the declared plugins.
    `void` | `pluginSourceSet(SourceSet pluginSourceSet)` Provides the source set that compiles the code under test.
    `void` | `setAutomatedPublishing(boolean automatedPublishing)` Configures whether the plugin should automatically configure the publications for the plugins.
    `void` | `testSourceSets(SourceSet... testSourceSets)` Provides the source sets executing the functional tests with TestKit.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### GradlePluginDevelopmentExtension

          public GradlePluginDevelopmentExtension(Project project,
                                          SourceSet pluginSourceSet,
                                          SourceSet testSourceSet)

    - #### GradlePluginDevelopmentExtension

          public GradlePluginDevelopmentExtension(Project project,
                                          SourceSet pluginSourceSet,
                                          SourceSet[] testSourceSets)

  - ### Method Detail

    - #### pluginSourceSet

          public void pluginSourceSet(SourceSet pluginSourceSet)

      Provides the source set that compiles the code under test.
      Parameters:
        `pluginSourceSet` - the plugin source set

    - #### testSourceSets

          public void testSourceSets(SourceSet... testSourceSets)

      Provides the source sets executing the functional tests with TestKit.

      Calling this method multiple times with different source sets is not additive.

      Parameters:
        `testSourceSets` - the test source sets

    - #### getPluginSourceSet

          public SourceSet getPluginSourceSet()

      Returns the source set that compiles the code under test. Defaults to `project.sourceSets.main`.
      Returns:
        the plugin source set

    - #### getTestSourceSets

          public Set<SourceSet> getTestSourceSets()

      Returns the the source sets executing the functional tests with TestKit. Defaults to `project.sourceSets.test`.
      Returns:
        the test source sets

    - #### getPlugins

          public NamedDomainObjectContainer<PluginDeclaration> getPlugins()

      Returns the declared plugins.
      Returns:
        the declared plugins, never null

    - #### plugins

          public void plugins(Action<? super NamedDomainObjectContainer<PluginDeclaration>> action)

      Configures the declared plugins.
      Parameters:
        `action` - the configuration action to invoke on the plugins

    - #### isAutomatedPublishing

          public boolean isAutomatedPublishing()

      Whether the plugin should automatically configure the publications for the plugins.
      Returns:
        true if publishing should be automated, false otherwise

    - #### setAutomatedPublishing

          public void setAutomatedPublishing(boolean automatedPublishing)

      Configures whether the plugin should automatically configure the publications for the plugins.
      Parameters:
        `automatedPublishing` - whether to automated publication