# namespaces

Tag: namespaces
Namespaces are an advanced feature of Ivy which let you use resolvers in which module names and organisations are not consistent between each other. For instance, if you want to use both a maven2 repository and an ivyrep, you will face some naming issues. For example, all apache commons projects are declared to be part of the organisation apache in ivyrep whereas in maven2 ibiblio repository, their organisation is same as the module.
So if you try to use both maven2 and ivyrep repositories, you will face some issues like:
<quote> How do I declare a dependency on commons-lang?
I have an error while trying to resolve module xxx. It says that it depends on [commons-httpclient commons-httpclient] and that it isn't available.
...
</quote> Ivy's answer to this issue is called namespaces. In short, you can attach a namespace to each dependency resolver in Ivy, and each namespace defines rules to convert names from the system namespace to the defined namespace itself, and vice versa.
This very powerful feature is thoroughly used in the build your own repository tutorial, so is the best place to see an example of what can be done with namespaces.

# Child elements

Element | Description | Cardinality
--- | --- | ---
namespace | defines a new namespace | 0..n