api / org.gradle.plugin.use

Package org.gradle.plugin.use



interface PluginDependenciesSpec

The DSL for declaring plugins to use in a script.

In a build script, the plugins {} script block API is of this type. That is, you can use this API in the body of the plugins script block to declare plugins to be used for the script.

Relationship with the apply() method

The plugins {} block serves a similar purpose to the org.gradle.api.plugins.PluginAware#apply(java.util.Map) method that can be used to apply a plugin directly to a Project object or similar. A key difference is that plugins applied via the plugins {} block are conceptually applied to the script, and by extension the script target. At this time there is no observable practical difference between the two approaches with regard to the end result. The plugins {} block is a new, incubating, Gradle feature that will evolve to offer benefits over the apply() approach.

Strict Syntax

The plugins {} block only allows a strict subset of the full build script programming language. Only the API of this type can be used, and values must be literal (e.g. constant strings, not variables). Moreover, the plugins {} block must be the first code of a build script. There is one exception to this, in that the buildscript {} block (used for declaring script dependencies) must precede it.

This implies the following constraints:

Available Plugins Core Plugins

Core Gradle plugins are able to be applied using the plugins {} block. Core plugins must be specified without a version number, and can have a qualified or unqualified id. That is, the java plugin can be used via:

 plugins { id 'java' } 

Or via:

 plugins { id 'org.gradle.java' } 

Core Gradle plugins use the org.gradle namespace.

For the list of available core plugins for a particular Gradle version, please consult the User Guide.

Community Plugins

Non-core plugins are available from the Gradle Plugin Portal. These plugins are contributed by users of Gradle to extend Gradle's functionality. Visit plugins.gradle.org to browse the available plugins and versions.

To use a community plugin, the fully qualified id must be specified along with a version.


interface PluginDependencySpec

A mutable specification of a dependency on a plugin.

Can be used to specify the version of the plugin to use.

See PluginDependenciesSpec for more information about declaring plugin dependencies.


interface PluginId

A description of a plugin.