Package org.gradle.plugin.devel

# Class GradlePluginDevelopmentExtension

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

@Incubating public class GradlePluginDevelopmentExtension extends Object
Configuration options for the `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:
  - `JavaGradlePluginPlugin`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
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 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 Details

### GradlePluginDevelopmentExtension

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

### GradlePluginDevelopmentExtension

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

## Method Details

### 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 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