# Interface ComponentModuleMetadataHandler

@Incubating public interface ComponentModuleMetadataHandler
Allows to modify the metadata of depended-on software components.

Example:

    dependencies {
        modules {
            //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")
            }
        }
    }

Since:
  2.2

## Method Summary

Modifier and Type
Method
Description
`void`
`module(Object moduleNotation, Action<? super ComponentModuleMetadata> rule)`
Enables configuring component module metadata.

## Method Details

### module

void module(Object moduleNotation, Action<? super ComponentModuleMetadata> rule)
Enables configuring component module metadata. This metadata applies to the entire component module (e.g. "group:name", like "org.gradle:gradle-core") regardless of the component version.

    //declaring that google collections are replaced by guava
    //so that conflict resolution can take advantage of this information:
    dependencies.modules.module('com.google.collections:google-collections') { replacedBy('com.google.guava:guava') }

Parameters:
  `moduleNotation` - an identifier of the module. String "group:name", e.g. 'org.gradle:gradle-core' or an instance of `ModuleIdentifier`
  `rule` - a rule that applies to the components of the specified module
Since:
  2.2