Package org.gradle.api.artifacts
Interface ComponentSelectionRules
Represents a container for component selection rules. Rules can be applied as part of the
resolutionStrategy of a configuration and individual components can be explicitly accepted
or rejected by rule. Components that are neither accepted or rejected will be subject to
the default version matching strategies.
configurations { conf { resolutionStrategy { componentSelection { all { ComponentSelection selection -> if (selection.candidate.module == 'someModule' && selection.candidate.version == '1.1') { selection.reject("bad version '1.1' for 'someModule'") } } all { ComponentSelection selection, IvyModuleDescriptor descriptor, ComponentMetadata metadata -> if (selection.candidate.module == 'someModule' && descriptor.branch == 'testing') { if (metadata.status != 'milestone') { selection.reject("only use milestones for someModule:testing") } } } withModule("org.sample:api") { ComponentSelection selection -> if (selection.candidate.version == "1.1") { selection.reject("known bad version") } } } } } }
-
Method Summary
Modifier and TypeMethodDescriptionAdds a component selection rule that will apply to all resolved components.Adds a rule-source backed component selection rule that will apply to all resolved components.all
(Action<? super ComponentSelection> selectionAction) Adds a simple component selection rule that will apply to all resolved components.withModule
(Object id, Closure<?> closure) Adds a component selection rule that will apply to the specified module.withModule
(Object id, Object ruleSource) Adds a rule-source backed component selection rule that will apply to the specified module.withModule
(Object id, Action<? super ComponentSelection> selectionAction) Adds a component selection rule that will apply to the specified module.
-
Method Details
-
all
Adds a simple component selection rule that will apply to all resolved components. Each rule will receive aComponentSelection
object as an argument.- Parameters:
selectionAction
- the Action that implements a rule to be applied- Returns:
- this
-
all
Adds a component selection rule that will apply to all resolved components. Each rule will receive aComponentSelection
object as an argument as well as any other arguments specified for the closure. Allowable closure arguments areComponentSelection
(required),ComponentMetadata
and/orIvyModuleDescriptor
.- Parameters:
closure
- the Closure that implements a rule to be applied- Returns:
- this
-
all
Adds a rule-source backed component selection rule that will apply to all resolved components. The ruleSource provides the rule as exactly one rule method annotated withMutate
. This rule method:- must return void.
- must have
ComponentSelection
as the first parameter. - may have additional parameters of type
ComponentMetadata
and/orIvyModuleDescriptor
.
- Parameters:
ruleSource
- an instance providing a rule implementation- Returns:
- this
-
withModule
Adds a component selection rule that will apply to the specified module. Each rule will receive aComponentSelection
object as an argument.- Parameters:
id
- the module to apply this rule to in "group:module" format or as aModuleIdentifier
selectionAction
- the Action that implements a rule to be applied- Returns:
- this
-
withModule
Adds a component selection rule that will apply to the specified module. Each rule will receive aComponentSelection
object as an argument as well as any other arguments specified for the closure. Allowable closure arguments areComponentSelection
(required),ComponentMetadata
and/orIvyModuleDescriptor
.- Parameters:
id
- the module to apply this rule to in "group:module" format or as aModuleIdentifier
closure
- the Closure that implements a rule to be applied- Returns:
- this
-
withModule
Adds a rule-source backed component selection rule that will apply to the specified module. The ruleSource provides the rule as exactly one rule method annotated withMutate
. This rule method:- must return void.
- must have
ComponentSelection
as the first parameter. - may have additional parameters of type
ComponentMetadata
and/orIvyModuleDescriptor
.
- Parameters:
id
- the module to apply this rule to in "group:module" format or as aModuleIdentifier
ruleSource
- an instance providing a rule implementation- Returns:
- this
-