Interface ConfigurationContainer

All Superinterfaces:
Collection<Configuration>, org.gradle.util.Configurable<NamedDomainObjectContainer<Configuration>>, DomainObjectCollection<Configuration>, Iterable<Configuration>, NamedDomainObjectCollection<Configuration>, NamedDomainObjectContainer<Configuration>, NamedDomainObjectSet<Configuration>, Set<Configuration>

public interface ConfigurationContainer extends NamedDomainObjectContainer<Configuration>

A ConfigurationContainer is responsible for declaring and managing configurations. See also Configuration.

You can obtain a ConfigurationContainer instance by calling Project.getConfigurations(), or using the configurations property in your build script.

The configurations in a container are accessible as read-only properties of the container, using the name of the configuration as the property name. For example:

configurations.create('myConfiguration')
configurations.myConfiguration.transitive = false

A dynamic method is added for each configuration which takes a configuration closure. This is equivalent to calling getByName(String, groovy.lang.Closure). For example:

configurations.create('myConfiguration')
configurations.myConfiguration {
    transitive = false
}

Examples

An example showing how to refer to a given configuration by name in order to get hold of all dependencies (e.g. jars, but only)
  apply plugin: 'java' //so that I can use 'compile' configuration

  //copying all dependencies attached to 'compile' into a specific folder
  task copyAllDependencies(type: Copy) {
    //referring to the 'compile' configuration
    from configurations.compile
    into 'allLibs'
  }
An example showing how to declare and configure configurations
apply plugin: 'java' //so that I can use 'compile', 'testCompile' configurations

configurations {
  //adding a configuration:
  myConfiguration

  //adding a configuration that extends existing configuration:
  //(testCompile was added by the java plugin)
  myIntegrationTestsCompile.extendsFrom(testCompile)

  //configuring existing configurations not to put transitive dependencies on the compile classpath
  //this way you can avoid issues with implicit dependencies to transitive libraries
  compile.transitive = false
  testCompile.transitive = false
}
Examples on configuring the resolution strategy - see docs for ResolutionStrategy