ComponentMetadataHandler

API Documentation:ComponentMetadataHandler

Note: This class is incubating and may change in a future version of Gradle.

Allows to modify the metadata of depended-on software components.

Example:

dependencies {
    components {
        //triggered during dependency resolution, for each component:
        eachComponent { ComponentMetadataDetails details ->
            if (details.id.group == "org.foo") {
                def version = details.id.version
                // assuming status is last part of version string
                details.status = version.substring(version.lastIndexOf("-") + 1)
                details.statusScheme = ["bronze", "silver", "gold", "platinum"]
            }
        }

        //Configuring component module metadata for the entire "google-collections" module,
        // declaring that legacy library was replaced with "guava".
        //This way, Gradle's conflict resolution can use this information and use "guava"
        // in case both libraries appear in the same dependency tree.
        module("com.google.collections:google-collections").replacedBy("com.google.guava:guava")
    }
}

Properties

No properties

Methods

MethodDescription
eachComponent(rule)
Incubating

Adds a rule to modify the metadata of depended-on software components. For example, this allows to set a component's status and status scheme from within the build script, overriding any value specified in the component descriptor.

eachComponent(rule)
Incubating

Adds a rule to modify the metadata of depended-on software components. For example, this allows to set a component's status and status scheme from within the build script, overriding any value specified in the component descriptor.

Script blocks

No script blocks

Method details

void eachComponent(Closure<?> rule)

Note: This method is incubating and may change in a future version of Gradle.

Adds a rule to modify the metadata of depended-on software components. For example, this allows to set a component's status and status scheme from within the build script, overriding any value specified in the component descriptor.

The rule must declare a ComponentMetadataDetails as it's first parameter, allowing the component metadata to be modified.

In addition, the rule can declare additional (read-only) parameters, which may provide extra details about the component. The order of these additional parameters is irrelevant.

Presently, the following additional parameter types are supported:

  • IvyModuleDescriptor Additional Ivy-specific metadata. Rules declaring this parameter will only be invoked for components packaged as an Ivy module.

void eachComponent(Action<? super ComponentMetadataDetails> rule)

Note: This method is incubating and may change in a future version of Gradle.

Adds a rule to modify the metadata of depended-on software components. For example, this allows to set a component's status and status scheme from within the build script, overriding any value specified in the component descriptor.