# module

Tag: module

Define a module set rule. The tag defines a module set, by giving an expression and the matcher to use for organisation, name, revision and any extra attribute identifying your modules. The rule matching is performed in order, and is using a pattern matcher. Hence you can use `*` to specify all, or simply avoid specifying the attribute.

The revision and extra attributes are only used for rules defining the resolver to use. For other settings, use only organisation and module name.

It also gives the specific setting to use for this module set.

For each module set, you can configure:

- the resolver to use

- the conflict manager to use

- the default branch to use

- the resolve mode to use

## Attributes

Attribute | Description | Required
--- | --- | ---
organisation | the organisation to match to apply the rule. | No, defaults to *
name | the module’s name to match to apply the rule. | No, defaults to *
revision | the module’s revision to match to apply the rule. Note that the version may not be resolved yet (be `latest.integration`, for instance), so be very careful when using this attribute (since 2.0). | No, defaults to *
any extra attribute | an extra attribute to match to apply the rule (since 2.0). | No, defaults to *
matcher | the matcher to use to match the modules to which the resolver should be applied (since 1.3). | No, defaults to exactOrRegexp
resolver | the name of the resolver to apply. The resolver must have been defined in the resolvers section of the settings file. | No
conflict-manager | the name of the conflict manager to apply (since 1.4). | No
branch | the default branch to apply (since 1.4). | No
resolveMode | the resolve mode to use (since 2.0). | No

## Examples

    <modules>
      <module organisation="apache" name="*" resolver="myprojectsresolver"/>
    </modules>

Uses myprojectresolver for all modules from apache.

    <modules>
      <module organisation="apache" name="commons-*" matcher="glob" resolver="myapachecommonsresolver"/>
    </modules>

Uses myapachecommonsresolver for all modules beginning with `commons-` from `apache`.

    <modules>
      <module organisation="apache" name="commons-[a-z]+" myextra="val.*" matcher="regexp" resolver="myapachecommonsresolver"/>
    </modules>

Uses `myapachecommonsresolver` for all modules from `apache` beginning with `commons-` followed by any number of alphabetic lowercase characters, and with the extra attribute `myextra` having a value beginning with `val.`.

    <modules>
      <module organisation="apache" name="ivy*" matcher="glob" conflict-manager="latest-time"/>
    </modules>

Uses `latest-time` conflict manager for all modules from `apache` whose name begins with `ivy`.

    <modules>
      <module organisation="apache" name="ivy*" matcher="glob" branch="fix-103"/>
    </modules>

Uses `fix-103` as default branch for all modules from `apache` whose name begins with `ivy`.