# Interface PluginDependencySpec

public 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.

Since:
  2.0

- ## Method Summary

  Modifier and Type
  Method
  Description
  `PluginDependencySpec`
  `apply(boolean apply)`
  Specifies whether the plugin should be applied to the current project.
  `PluginDependencySpec`
  `version(@Nullable String version)`
  Specify the version of the plugin to depend on.
  `default PluginDependencySpec`
  `version(Provider<String> version)`
  Specify the version of the plugin to depend on.

- ## Method Details

  - ### version

    PluginDependencySpec version(@Nullable String version)
    Specify the version of the plugin to depend on.

        plugins {
            id "org.company.myplugin" version "1.0"
        }

    By default, dependencies have no (i.e. `null`) version.

    Core plugins must not include a version number specification. Community plugins must include a version number specification.
    Parameters:
      `version` - the version string (`null` for no specified version, which is the default)
    Returns:
      this
    Since:
      2.0

  - ### version

    default PluginDependencySpec version(Provider<String> version)
    Specify the version of the plugin to depend on.

        plugins {
            id "org.company.myplugin" version libs.versions.myplugin
        }

    Parameters:
      `version` - the version provider, for example as found in a version catalog
    Returns:
      this
    Since:
      7.2

  - ### apply

    PluginDependencySpec apply(boolean apply)
    Specifies whether the plugin should be applied to the current project. Otherwise it is only put on the project's classpath.

    This is useful when reusing classes from a plugin or to apply a plugin to sub-projects:

        plugins {
            id "org.company.myplugin" version "1.0" apply false
        }

        subprojects {
            if (someCondition) {
                apply plugin: "org.company.myplugin"
            }
        }

    Parameters:
      `apply` - whether to apply the plugin to the current project or not. Defaults to true
    Returns:
      this
    Since:
      3.0