# listmodules

[since 1.4]

Finds the list of modules in the repository matching some criteria and sets a corresponding list of properties in Ant.

The criteria is set by given patterns matching the organisation, name branch and revision of the modules to find.

To know if a module matches the criteria, Ivy will use the configured pattern matcher.

## Attributes

Attribute | Description | Required
--- | --- | ---
organisation | the pattern matching the organisation of the modules to list | Yes
module | the pattern matching the name of the modules to list | Yes
branch | the pattern matching the branch of the modules to list | No, defaults to `*`
revision | the pattern matching the revision of the modules to list | Yes
matcher | the name of the pattern matcher to use for matching the modules fields | No. Defaults to `exactOrRegexp`.
property | the pattern of the property to set when a module is found | Yes
value | The pattern of the value to set when a module is found | Yes
settingsRef | A reference to Ivy settings that must be used by this task (since 2.0) | No, defaults to `ivy.instance`.
resolver | The name of the resolver to use for searching the modules (since 2.2) | No, all available resolvers will be used by default.

## Examples

    <ivy:listmodules organisation="apache" module="ivy" revision="*" property="ivy.[revision]" value="found"/>

will find all revisions of the module ivy in the org apache, and create one property for each revision found, the name of the property depending on the revision, the value being always `found`

    <ivy:listmodules organisation="*" module="ivy*" revision="1.0" matcher="glob" property="modules.[module]" value="[organisation]"/>

use the glob matcher to find all modules which name starts with ivy with revision 1.0, and sets for each a property with module name found and organisation for value.

Example:

    modules.ivy=apache
    modules.ivyde=apache
    modules.ivytools=ivytools