Package: org.gradle.api.artifacts

## [Java] Interface Configuration

- org.gradle.api.tasks.AntBuilderAware

- All Superinterfaces:
    Buildable, FileCollection, AntBuilderAware

  A `Configuration` represents a group of artifacts and their dependencies. Find more information about declaring dependencies to a configuration or about managing configurations in docs for ConfigurationContainer

  Configuration is an instance of a FileCollection that contains all dependencies (see also getAllDependencies()) but not artifacts. If you want to refer to the artifacts declared in this configuration please use getArtifacts() or getAllArtifacts(). Read more about declaring artifacts in the configuration in docs for ArtifactHandler

- - ### Nested Class Summary

    Nested classes
    Modifiers | Name | Description
    --- | --- | ---
    `static class` | `Configuration.Namer` | A Namer namer for configurations that returns getName().
    `enum` | `Configuration.State` | The states a configuration can be into.

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `Configuration` | `copy()` Creates a copy of this configuration that only contains the dependencies directly in this configuration (without contributions from superconfigurations).
    `Configuration` | `copy(Spec<? super Dependency> dependencySpec)` Creates a copy of this configuration ignoring superconfigurations (see copy() but filtering the dependencies using the specified dependency spec.
    `Configuration` | `copy(groovy.lang.Closure dependencySpec)` Takes a closure which gets coerced into a Spec.
    `Configuration` | `copyRecursive()` Creates a copy of this configuration that contains the dependencies directly in this configuration and those derived from superconfigurations.
    `Configuration` | `copyRecursive(Spec<? super Dependency> dependencySpec)` Creates a copy of this configuration with dependencies from superconfigurations (see copyRecursive()) but filtering the dependencies using the dependencySpec.
    `Configuration` | `copyRecursive(groovy.lang.Closure dependencySpec)` Takes a closure which gets coerced into a Spec.
    `Configuration` | `defaultDependencies(Action<? super DependencySet> action)` Execute the given action if the configuration has no defined dependencies when it first participates in dependency resolution.
    `Configuration` | `exclude(Map<String, String> excludeProperties)` Adds an exclude rule to exclude transitive dependencies for all dependencies of this configuration.
    `Configuration` | `extendsFrom(Configuration... superConfigs)` Adds the given configurations to the set of configuration which this configuration extends from.
    `FileCollection` | `fileCollection(Spec<? super Dependency> dependencySpec)` Resolves this configuration lazily.
    `FileCollection` | `fileCollection(groovy.lang.Closure dependencySpecClosure)` Takes a closure which gets coerced into a Spec.
    `FileCollection` | `fileCollection(Dependency... dependencies)` Resolves this configuration lazily.
    `Set<File>` | `files(groovy.lang.Closure dependencySpecClosure)` Takes a closure which gets coerced into a Spec.
    `Set<File>` | `files(Spec<? super Dependency> dependencySpec)` Resolves this configuration.
    `Set<File>` | `files(Dependency... dependencies)` Resolves this configuration.
    `Set<Configuration>` | `getAll()` Returns all the configurations belonging to the same configuration container as this configuration (including this configuration).
    `PublishArtifactSet` | `getAllArtifacts()` Returns the artifacts of this configuration including the artifacts of extended configurations.
    `DependencySet` | `getAllDependencies()`
    `PublishArtifactSet` | `getArtifacts()` Returns the artifacts of this configuration excluding the artifacts of extended configurations.
    `TaskDependency` | `getBuildDependencies()` Returns a `TaskDependency` object containing all required dependencies to build the internal dependencies (e.g.
    `DependencySet` | `getDependencies()` Gets the set of dependencies directly contained in this configuration (ignoring superconfigurations).
    `String` | `getDescription()` Returns the description for this configuration.
    `Set<ExcludeRule>` | `getExcludeRules()` Returns the exclude rules applied for resolving any dependency of this configuration.
    `Set<Configuration>` | `getExtendsFrom()` Returns the names of the configurations which this configuration extends from.
    `Set<Configuration>` | `getHierarchy()` Gets a ordered set including this configuration and all superconfigurations recursively.
    `ResolvableDependencies` | `getIncoming()` Returns the incoming dependencies of this configuration.
    `String` | `getName()` Returns the name of this configuration.
    `ResolutionStrategy` | `getResolutionStrategy()` Returns the resolution strategy used by this configuration.
    `ResolvedConfiguration` | `getResolvedConfiguration()` Resolves this configuration.
    `Configuration.State` | `getState()` A `Configuration` represents a group of artifacts and their dependencies.
    `TaskDependency` | `getTaskDependencyFromProjectDependency(boolean useDependedOn, String taskName)` Returns a TaskDependency object containing dependencies on all tasks with the specified name from project dependencies related to this configuration or one of its super configurations.
    `String` | `getUploadTaskName()` Returns the name of the task that upload the artifacts of this configuration to repositories declared by the user.
    `boolean` | `isTransitive()` Returns the transitivity of this configuration.
    `boolean` | `isVisible()` Returns true if this is a visible configuration.
    `Configuration` | `resolutionStrategy(groovy.lang.Closure closure)` The resolution strategy provides extra details on how to resolve this configuration.
    `Set<File>` | `resolve()` Resolves this configuration.
    `Configuration` | `setDescription(String description)` Sets the description for this configuration.
    `Configuration` | `setExtendsFrom(Iterable<Configuration> superConfigs)` Sets the configurations which this configuration extends from.
    `Configuration` | `setTransitive(boolean t)` Sets the transitivity of this configuration.
    `Configuration` | `setVisible(boolean visible)` Sets the visibility of this configuration.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `interface FileCollection` | `add, addToAntBuilder, addToAntBuilder, asType, contains, filter, filter, getAsFileTree, getAsPath, getFiles, getSingleFile, isEmpty, minus, plus, stopExecutionIfEmpty`
    `interface AntBuilderAware` | `addToAntBuilder`
    `interface Buildable` | `getBuildDependencies`
    `interface Iterable` | `iterator`

- - ### Method Detail

    - #### public Configuration copy()

      Creates a copy of this configuration that only contains the dependencies directly in this configuration (without contributions from superconfigurations). The new configuration will be in the UNRESOLVED state, but will retain all other attributes of this configuration except superconfigurations. getHierarchy() for the copy will not include any superconfigurations.

      Returns:
        copy of this configuration

    - #### public Configuration copy(Spec<? super Dependency> dependencySpec)

      Creates a copy of this configuration ignoring superconfigurations (see copy() but filtering the dependencies using the specified dependency spec.

      Parameters:
        `dependencySpec` - filtering requirements
      Returns:
        copy of this configuration

    - #### public Configuration copy(groovy.lang.Closure dependencySpec)

      Takes a closure which gets coerced into a Spec. Behaves otherwise in the same way as copy(org.gradle.api.specs.Spec)

      Parameters:
        `dependencySpec` - filtering requirements
      Returns:
        copy of this configuration

    - #### public Configuration copyRecursive()

      Creates a copy of this configuration that contains the dependencies directly in this configuration and those derived from superconfigurations. The new configuration will be in the UNRESOLVED state, but will retain all other attributes of this configuration except superconfigurations. getHierarchy() for the copy will not include any superconfigurations.

      Returns:
        copy of this configuration

    - #### public Configuration copyRecursive(Spec<? super Dependency> dependencySpec)

      Creates a copy of this configuration with dependencies from superconfigurations (see copyRecursive()) but filtering the dependencies using the dependencySpec.

      Parameters:
        `dependencySpec` - filtering requirements
      Returns:
        copy of this configuration

    - #### public Configuration copyRecursive(groovy.lang.Closure dependencySpec)

      Takes a closure which gets coerced into a Spec. Behaves otherwise in the same way as copyRecursive(org.gradle.api.specs.Spec)

      Parameters:
        `dependencySpec` - filtering requirements
      Returns:
        copy of this configuration

    - #### @Incubating public Configuration defaultDependencies(Action<? super DependencySet> action)

      Execute the given action if the configuration has no defined dependencies when it first participates in dependency resolution. A `Configuration` will participate in dependency resolution when:

      - The Configuration itself is resolved
      - Another Configuration that extends this one is resolved
      - Another Configuration that references this one as a project dependency is resolved
      This method is useful for specifying default dependencies for a configuration:

           configurations { conf }
           configurations['conf'].defaultDependencies { dependencies ->
                dependencies.add(owner.project.dependencies.create("org.gradle:my-util:1.0"))
           }

      A `Configuration` is considered empty even if it extends another, non-empty `Configuration`. If multiple actions are supplied, each action will be executed until the set of dependencies is no longer empty. Remaining actions will be ignored.
      Parameters:
        `action` - the action to execute when the configuration has no defined dependencies.
      Returns:
        this

    - #### public Configuration exclude(Map<String, String> excludeProperties)

      Adds an exclude rule to exclude transitive dependencies for all dependencies of this configuration. You can also add exclude rules per-dependency. See ModuleDependency.exclude.

      Parameters:
        `excludeProperties` - the properties to define the exclude rule.
      Returns:
        this

    - #### public Configuration extendsFrom(Configuration... superConfigs)

      Adds the given configurations to the set of configuration which this configuration extends from.

      Parameters:
        `superConfigs` - The super configurations.
      Returns:
        this configuration

    - #### public FileCollection fileCollection(Spec<? super Dependency> dependencySpec)

      Resolves this configuration lazily. The resolve happens when the elements of the returned FileCollection get accessed the first time. This locates and downloads the files which make up this configuration. Only the resulting set of files belonging to the subset of dependencies specified by the dependencySpec is contained in the FileCollection.

      Parameters:
        `dependencySpec` - The spec describing a filter applied to the all the dependencies of this configuration (including dependencies from extended configurations).
      Returns:
        The FileCollection with a subset of dependencies of this configuration.

    - #### public FileCollection fileCollection(groovy.lang.Closure dependencySpecClosure)

      Takes a closure which gets coerced into a Spec. Behaves otherwise in the same way as fileCollection(org.gradle.api.specs.Spec).

      Parameters:
        `dependencySpecClosure` - The closure describing a filter applied to the all the dependencies of this configuration (including dependencies from extended configurations).
      Returns:
        The FileCollection with a subset of dependencies of this configuration.

    - #### public FileCollection fileCollection(Dependency... dependencies)

      Resolves this configuration lazily. The resolve happens when the elements of the returned FileCollection get accessed the first time. This locates and downloads the files which make up this configuration. Only the resulting set of files belonging to specified dependencies is contained in the FileCollection.

      Parameters:
        `dependencies` - The dependencies for which the FileCollection should contain the files.
      Returns:
        The FileCollection with a subset of dependencies of this configuration.

    - #### public Set<File> files(groovy.lang.Closure dependencySpecClosure)

      Takes a closure which gets coerced into a Spec. Behaves otherwise in the same way as files(org.gradle.api.specs.Spec).

      Parameters:
        `dependencySpecClosure` - The closure describing a filter applied to the all the dependencies of this configuration (including dependencies from extended configurations).
      Returns:
        The files of a subset of dependencies of this configuration.

    - #### public Set<File> files(Spec<? super Dependency> dependencySpec)

      Resolves this configuration. This locates and downloads the files which make up this configuration. But only the resulting set of files belonging to the subset of dependencies specified by the dependencySpec is returned.

      Parameters:
        `dependencySpec` - The spec describing a filter applied to the all the dependencies of this configuration (including dependencies from extended configurations).
      Returns:
        The files of a subset of dependencies of this configuration.

    - #### public Set<File> files(Dependency... dependencies)

      Resolves this configuration. This locates and downloads the files which make up this configuration. But only the resulting set of files belonging to the specified dependencies is returned.

      Parameters:
        `dependencies` - The dependences to be resolved
      Returns:
        The files of a subset of dependencies of this configuration.

    - #### public Set<Configuration> getAll()

      Returns all the configurations belonging to the same configuration container as this configuration (including this configuration).

      Returns:
        All of the configurations belong to the configuration container that this set belongs to.

    - #### public PublishArtifactSet getAllArtifacts()

      Returns the artifacts of this configuration including the artifacts of extended configurations.

      Returns:
        The (read-only) set.

    - #### public DependencySet getAllDependencies()

      Gets the complete set of dependencies including those contributed by superconfigurations.

      Returns:
        the (read-only) set of dependencies

    - #### public PublishArtifactSet getArtifacts()

      Returns the artifacts of this configuration excluding the artifacts of extended configurations.

      Returns:
        The set.

    - #### public TaskDependency getBuildDependencies()

      Returns a `TaskDependency` object containing all required dependencies to build the internal dependencies (e.g. project dependencies) belonging to this configuration or to one of its super configurations.

      Returns:
        a TaskDependency object

    - #### public DependencySet getDependencies()

      Gets the set of dependencies directly contained in this configuration (ignoring superconfigurations).

      Returns:
        the set of dependencies

    - #### public String getDescription()

      Returns the description for this configuration.

      Returns:
        the description. May be null.

    - #### public Set<ExcludeRule> getExcludeRules()

      Returns the exclude rules applied for resolving any dependency of this configuration.

      Returns:
        The exclude rules
      See Also:
        exclude(java.util.Map)

    - #### public Set<Configuration> getExtendsFrom()

      Returns the names of the configurations which this configuration extends from. The artifacts of the super configurations are also available in this configuration.

      Returns:
        The super configurations. Returns an empty set when this configuration does not extend any others.

    - #### public Set<Configuration> getHierarchy()

      Gets a ordered set including this configuration and all superconfigurations recursively.

      Returns:
        the list of all configurations

    - #### public ResolvableDependencies getIncoming()

      Returns the incoming dependencies of this configuration.

      Returns:
        The incoming dependencies of this configuration. Never `null`.

    - #### public String getName()

      Returns the name of this configuration.

      Returns:
        The configuration name, never null.

    - #### public ResolutionStrategy getResolutionStrategy()

      Returns the resolution strategy used by this configuration. The resolution strategy provides extra details on how to resolve this configuration. See docs for ResolutionStrategy for more info and examples.

      Returns:
        resolution strategy
      Since:
        1.0-milestone-6

    - #### public ResolvedConfiguration getResolvedConfiguration()

      Resolves this configuration. This locates and downloads the files which make up this configuration, and returns a ResolvedConfiguration that may be used to determine information about the resolve (including errors).

      Returns:
        The ResolvedConfiguration object

    - #### public Configuration.State getState()

      A `Configuration` represents a group of artifacts and their dependencies. Find more information about declaring dependencies to a configuration or about managing configurations in docs for ConfigurationContainer

      Configuration is an instance of a FileCollection that contains all dependencies (see also getAllDependencies()) but not artifacts. If you want to refer to the artifacts declared in this configuration please use getArtifacts() or getAllArtifacts(). Read more about declaring artifacts in the configuration in docs for ArtifactHandler

    - #### public TaskDependency getTaskDependencyFromProjectDependency(boolean useDependedOn, String taskName)

      Returns a TaskDependency object containing dependencies on all tasks with the specified name from project dependencies related to this configuration or one of its super configurations. These other projects may be projects this configuration depends on or projects with a similarly named configuration that depend on this one based on the useDependOn argument.

      Parameters:
        `useDependedOn` - if true, add tasks from project dependencies in this configuration, otherwise use projects from configurations with the same name that depend on this one.
        `taskName` - name of task to depend on
      Returns:
        the populated TaskDependency object

    - #### public String getUploadTaskName()

      Returns the name of the task that upload the artifacts of this configuration to repositories declared by the user.

      Returns:
        The name of the associated upload task
      See Also:
        Upload

    - #### public boolean isTransitive()

      Returns the transitivity of this configuration. A transitive configuration contains the transitive closure of its direct dependencies, and all their dependencies. An intransitive configuration contains only the direct dependencies. The default value is true.

      Returns:
        true if this is a transitive configuration, false otherwise.

    - #### public boolean isVisible()

      Returns true if this is a visible configuration. A visible configuration is usable outside the project it belongs to. The default value is true.

      Returns:
        true if this is a visible configuration.

    - #### public Configuration resolutionStrategy(groovy.lang.Closure closure)

      The resolution strategy provides extra details on how to resolve this configuration. See docs for ResolutionStrategy for more info and examples.

      Parameters:
        `closure` - closure applied to the ResolutionStrategy
      Returns:
        this configuration instance
      Since:
        1.0-milestone-6

    - #### public Set<File> resolve()

      Resolves this configuration. This locates and downloads the files which make up this configuration, and returns the resulting set of files.

      Returns:
        The files of this configuration.

    - #### public Configuration setDescription(String description)

      Sets the description for this configuration.

      Parameters:
        `description` - the description. May be null
      Returns:
        this configuration

    - #### public Configuration setExtendsFrom(Iterable<Configuration> superConfigs)

      Sets the configurations which this configuration extends from.

      Parameters:
        `superConfigs` - The super configuration. Should not be null.
      Returns:
        this configuration

    - #### public Configuration setTransitive(boolean t)

      Sets the transitivity of this configuration. When set to true, this configuration will contain the transitive closure of its dependencies and their dependencies. The default value is true.

      Parameters:
        `t` - true if this is a transitive configuration.
      Returns:
        this configuration

    - #### public Configuration setVisible(boolean visible)

      Sets the visibility of this configuration. When visible is set to true, this configuration is visibile outside the project it belongs to. The default value is true.

      Parameters:
        `visible` - true if this is a visible configuration
      Returns:
        this configuration