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 aComponentSelectionobject 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 aComponentSelectionobject as an argument as well as any other arguments specified for the closure. Allowable closure arguments areComponentSelection(required),ComponentMetadataand/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
ComponentSelectionas the first parameter. - may have additional parameters of type
ComponentMetadataand/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 aComponentSelectionobject as an argument.- Parameters:
id- the module to apply this rule to in "group:module" format or as aModuleIdentifierselectionAction- 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 aComponentSelectionobject as an argument as well as any other arguments specified for the closure. Allowable closure arguments areComponentSelection(required),ComponentMetadataand/orIvyModuleDescriptor.- Parameters:
id- the module to apply this rule to in "group:module" format or as aModuleIdentifierclosure- 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
ComponentSelectionas the first parameter. - may have additional parameters of type
ComponentMetadataand/orIvyModuleDescriptor.
- Parameters:
id- the module to apply this rule to in "group:module" format or as aModuleIdentifierruleSource- an instance providing a rule implementation- Returns:
- this
-