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