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