Package org.gradle.api.artifacts.maven

# Interface Conf2ScopeMappingContainer

public interface Conf2ScopeMappingContainer
Defines a set of rules for how to map the Gradle dependencies to a POM. This mapping is based on the configuration the dependencies belong to.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`COMPILE`
`static final String`
`PROVIDED`
`static final String`
`RUNTIME`
`static final String`
`TEST`

## Method Summary

Modifier and Type
Method
Description
`Conf2ScopeMappingContainer`
`addMapping(int priority, Configuration configuration, String scope)`
Specifies that dependencies of a certain configuration should be mapped against a certain Maven scope.
`Conf2ScopeMapping`
`getMapping(Collection<Configuration> configurations)`
Returns a scope that corresponds to the given configurations.
`Map<Configuration,Conf2ScopeMapping>`
`getMappings()`
Returns a map with all the configuration to scope mappings.
`boolean`
`isSkipUnmappedConfs()`
Returns whether unmapped configuration should be skipped or not.
`void`
`setSkipUnmappedConfs(boolean skipDependenciesWithUnmappedConfiguration)`
Sets, whether unmapped configuration should be skipped or not.

## Field Details

### PROVIDED

static final String PROVIDED

See Also:
  - Constant Field Values

### COMPILE

static final String COMPILE

See Also:
  - Constant Field Values

### RUNTIME

static final String RUNTIME

See Also:
  - Constant Field Values

### TEST

static final String TEST

See Also:
  - Constant Field Values

## Method Details

### addMapping

Conf2ScopeMappingContainer addMapping(int priority, Configuration configuration, String scope)

Specifies that dependencies of a certain configuration should be mapped against a certain Maven scope. A configuration can be mapped to one and only one scope. If this method is called more than once for a particular configuration, the last call wins.

See `getMapping(java.util.Collection)` for the rules how a scope is choosen from a set of mappings.

Parameters:
  `priority` - a number that is used for comparison with the priority of other scopes.
  `configuration` - a Gradle configuration name (must not be null).
  `scope` - A Maven scope name (must not be null)
Returns:
  this
See Also:
  - `getMapping(java.util.Collection)`

### getMapping

Conf2ScopeMapping getMapping(Collection<Configuration> configurations)
Returns a scope that corresponds to the given configurations. Dependencies of different configurations can be equal. But only one of those equals dependencies (which might differ in content) can be mapped to a POM (due to the nature of a Maven POM).

Which scope is returned depends on the existing mappings. See `addMapping(int, Configuration, String)`. If only one configuration is mapped, this mapping is used to choose the scope. If more than one configuration of a dependency is mapped, and those mappings all map to the same scope, this scope is used. If more than one configuration is mapped and the mappings map to different scopes, the mapping with the highest priority is used. If there is more than one mapping with the highest priority and those mappings map to different scopes, an exception is thrown.

Parameters:
  `configurations` - The configuration
Returns:
  The scope corresponding to the given configurations. Returns null if no such scope can be found.
See Also:
  - `addMapping(int, Configuration, String)`

### getMappings

Map<Configuration,Conf2ScopeMapping> getMappings()
Returns a map with all the configuration to scope mappings. If no such mapping has been defined, an empty map is returned.

See Also:
  - `addMapping(int, Configuration, String)`

### isSkipUnmappedConfs

boolean isSkipUnmappedConfs()
Returns whether unmapped configuration should be skipped or not. Defaults to true.

See Also:
  - `setSkipUnmappedConfs(boolean)`

### setSkipUnmappedConfs

void setSkipUnmappedConfs(boolean skipDependenciesWithUnmappedConfiguration)
Sets, whether unmapped configuration should be skipped or not. If this is set to false, dependencies belonging to unmapped configurations will be added to the Maven POM with no scope specified. This means they belong to the Maven default scope, which is 'compile'.