Package org.gradle.api.artifacts
Interface ConfigurationContainer
-
- All Superinterfaces:
java.util.Collection<Configuration>
,Configurable<NamedDomainObjectContainer<Configuration>>
,DomainObjectCollection<Configuration>
,DomainObjectSet<Configuration>
,java.lang.Iterable<Configuration>
,NamedDomainObjectCollection<Configuration>
,NamedDomainObjectContainer<Configuration>
,NamedDomainObjectSet<Configuration>
,java.util.Set<Configuration>
public interface ConfigurationContainer extends NamedDomainObjectContainer<Configuration>
A
ConfigurationContainer
is responsible for declaring and managing configurations. See alsoConfiguration
.You can obtain a
ConfigurationContainer
instance by callingProject.getConfigurations()
, or using theconfigurations
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)plugins { id 'java' //so that I can use 'implementation', 'compileClasspath' configuration } dependencies { implementation 'org.slf4j:slf4j-api:1.7.26' } //copying all dependencies attached to 'compileClasspath' into a specific folder task copyAllDependencies(type: Copy) { //referring to the 'compileClasspath' configuration from configurations.compileClasspath into 'allLibs' }
An example showing how to declare and configure configurationsplugins { id 'java' // so that I can use 'implementation', 'testImplementation' configurations } configurations { //adding a configuration: myConfiguration //adding a configuration that extends existing configuration: //(testImplementation was added by the java plugin) myIntegrationTestsCompile.extendsFrom(testImplementation) //configuring existing configurations not to put transitive dependencies on the compile classpath //this way you can avoid issues with implicit dependencies to transitive libraries compileClasspath.transitive = false testCompileClasspath.transitive = false }
Examples on configuring the resolution strategy - see docs forResolutionStrategy
Please see the Managing Dependency Configurations User Manual chapter for more information.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description NamedDomainObjectProvider<ConsumableConfiguration>
consumable(java.lang.String name)
Registers a newConsumableConfiguration
with an immutable role.NamedDomainObjectProvider<ConsumableConfiguration>
consumable(java.lang.String name, Action<? super ConsumableConfiguration> action)
Registers aConsumableConfiguration
viaconsumable(String)
and then configures it with the provided action.NamedDomainObjectProvider<DependencyScopeConfiguration>
dependencyScope(java.lang.String name)
Registers a newDependencyScopeConfiguration
with an immutable role.NamedDomainObjectProvider<DependencyScopeConfiguration>
dependencyScope(java.lang.String name, Action<? super DependencyScopeConfiguration> action)
Registers aDependencyScopeConfiguration
viadependencyScope(String)
and then configures it with the provided action.Configuration
detachedConfiguration(Dependency... dependencies)
Creates a configuration, but does not add it to this container.Configuration
getAt(java.lang.String name)
Locates an object by name, failing if there is no such object.Configuration
getByName(java.lang.String name)
Locates an object by name, failing if there is no such object.Configuration
getByName(java.lang.String name, Closure configureClosure)
Locates an object by name, failing if there is no such object.Configuration
getByName(java.lang.String name, Action<? super Configuration> configureAction)
Locates an object by name, failing if there is no such object.NamedDomainObjectProvider<ResolvableConfiguration>
resolvable(java.lang.String name)
Registers aResolvableConfiguration
with an immutable role.NamedDomainObjectProvider<ResolvableConfiguration>
resolvable(java.lang.String name, Action<? super ResolvableConfiguration> action)
Registers aResolvableConfiguration
viaresolvable(String)
and then configures it with the provided action.-
Methods inherited from interface org.gradle.api.DomainObjectCollection
addAllLater, addLater, all, all, configureEach, whenObjectAdded, whenObjectAdded, whenObjectRemoved, whenObjectRemoved, withType, withType
-
Methods inherited from interface org.gradle.api.NamedDomainObjectCollection
add, addAll, addRule, addRule, addRule, findByName, getAsMap, getCollectionSchema, getNamer, getNames, getRules, named, named, named, named
-
Methods inherited from interface org.gradle.api.NamedDomainObjectContainer
configure, create, create, create, maybeCreate, register, register
-
-
-
-
Method Detail
-
getByName
Configuration getByName(java.lang.String name) throws UnknownConfigurationException
Locates an object by name, failing if there is no such object.- Specified by:
getByName
in interfaceNamedDomainObjectCollection<Configuration>
- Parameters:
name
- The object name- Returns:
- The object with the given name. Never returns null.
- Throws:
UnknownConfigurationException
-
getAt
Configuration getAt(java.lang.String name) throws UnknownConfigurationException
Locates an object by name, failing if there is no such object. This method is identical toNamedDomainObjectCollection.getByName(String)
. You can call this method in your build script by using the groovy[]
operator.- Specified by:
getAt
in interfaceNamedDomainObjectCollection<Configuration>
- Parameters:
name
- The object name- Returns:
- The object with the given name. Never returns null.
- Throws:
UnknownConfigurationException
-
getByName
Configuration getByName(java.lang.String name, @DelegatesTo(Configuration.class) Closure configureClosure) throws UnknownConfigurationException
Locates an object by name, failing if there is no such object. The given configure closure is executed against the object before it is returned from this method. The object is passed to the closure as its delegate.- Specified by:
getByName
in interfaceNamedDomainObjectCollection<Configuration>
- Parameters:
name
- The object nameconfigureClosure
- The closure to use to configure the object.- Returns:
- The object with the given name, after the configure closure has been applied to it. Never returns null.
- Throws:
UnknownConfigurationException
-
getByName
Configuration getByName(java.lang.String name, Action<? super Configuration> configureAction) throws UnknownConfigurationException
Locates an object by name, failing if there is no such object. The given configure action is executed against the object before it is returned from this method.- Specified by:
getByName
in interfaceNamedDomainObjectCollection<Configuration>
- Parameters:
name
- The object nameconfigureAction
- The action to use to configure the object.- Returns:
- The object with the given name, after the configure action has been applied to it. Never returns null.
- Throws:
UnknownConfigurationException
-
detachedConfiguration
Configuration detachedConfiguration(Dependency... dependencies)
Creates a configuration, but does not add it to this container.- Parameters:
dependencies
- The dependencies of the configuration.- Returns:
- The configuration.
-
resolvable
@Incubating NamedDomainObjectProvider<ResolvableConfiguration> resolvable(java.lang.String name)
Registers aResolvableConfiguration
with an immutable role. Resolvable configurations are meant to resolve dependency graphs and their artifacts.- Parameters:
name
- The name of the configuration to register.- Returns:
- A provider which creates a new resolvable configuration.
- Throws:
InvalidUserDataException
- If a configuration with the givenname
already exists in this container.- Since:
- 8.4
-
resolvable
@Incubating NamedDomainObjectProvider<ResolvableConfiguration> resolvable(java.lang.String name, Action<? super ResolvableConfiguration> action)
Registers aResolvableConfiguration
viaresolvable(String)
and then configures it with the provided action.- Parameters:
name
- The name of the configuration to register.action
- The action to apply to the configuration.- Returns:
- A provider which creates a new resolvable configuration.
- Throws:
InvalidUserDataException
- If a configuration with the givenname
already exists in this container.- Since:
- 8.4
-
consumable
@Incubating NamedDomainObjectProvider<ConsumableConfiguration> consumable(java.lang.String name)
Registers a newConsumableConfiguration
with an immutable role. Consumable configurations are meant to act as a variant in the context of Dependency Management and Publishing.- Parameters:
name
- The name of the configuration to register.- Returns:
- A provider which creates a new consumable configuration.
- Throws:
InvalidUserDataException
- If a configuration with the givenname
already exists in this container.- Since:
- 8.4
-
consumable
@Incubating NamedDomainObjectProvider<ConsumableConfiguration> consumable(java.lang.String name, Action<? super ConsumableConfiguration> action)
Registers aConsumableConfiguration
viaconsumable(String)
and then configures it with the provided action.- Parameters:
name
- The name of the configuration to register.action
- The action to apply to the configuration.- Returns:
- A provider which creates a new consumable configuration.
- Throws:
InvalidUserDataException
- If a configuration with the givenname
already exists in this container.- Since:
- 8.4
-
dependencyScope
@Incubating NamedDomainObjectProvider<DependencyScopeConfiguration> dependencyScope(java.lang.String name)
Registers a newDependencyScopeConfiguration
with an immutable role. Dependency scope configurations collect dependencies, dependency constraints, and exclude rules to be used by both resolvable and consumable configurations.- Parameters:
name
- The name of the configuration to register.- Returns:
- A provider which creates a new dependency scope configuration.
- Throws:
InvalidUserDataException
- If a configuration with the givenname
already exists in this container.- Since:
- 8.4
-
dependencyScope
@Incubating NamedDomainObjectProvider<DependencyScopeConfiguration> dependencyScope(java.lang.String name, Action<? super DependencyScopeConfiguration> action)
Registers aDependencyScopeConfiguration
viadependencyScope(String)
and then configures it with the provided action.- Parameters:
name
- The name of the configuration to register.action
- The action to apply to the configuration.- Returns:
- A provider which creates a new dependency scope configuration.
- Throws:
InvalidUserDataException
- If a configuration with the givenname
already exists in this container.- Since:
- 8.4
-
-