////
   Licensed to the Apache Software Foundation (ASF) under one
   or more contributor license agreements.  See the NOTICE file
   distributed with this work for additional information
   regarding copyright ownership.  The ASF licenses this file
   to you under the Apache License, Version 2.0 (the
   "License"); you may not use this file except in compliance
   with the License.  You may obtain a copy of the License at

     https://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   KIND, either express or implied.  See the License for the
   specific language governing permissions and limitations
   under the License.
////

*Tag:* dependencies *Parent:* link:../ivyfile{outfilesuffix}[ivy-module]

Container for dependency elements, used to describe the dependencies of this module. If this container is not present, it is assumed that the module has no dependencies at all.

This container provides two similar behaviors described below. (See link:configurations{outfilesuffix}[configurations doc page] for more details about these behaviors).

(*__since 1.1__*) `defaultconf` defines the `conf` attribute to use when no conf is defined for a dependency in this Ivy file. It is only used when no conf mapping is defined, and has no influence in other cases.

(*__since 1.3__*) `defaultconfmapping` influences the way that a conf mapping with no mapped conf is interpreted.

(*__since 2.2__*) Attributes `defaultconf` and `defaultconfmapping` can be used together. In earlier versions, if both `defaultconf` and `defaultconfmapping` are defined, it's the `defaultconfmapping` that is used.

(*__since 1.4__*) You can activate a `confmappingoverride` mode for all configurations, in which case the extending configurations will override the mappings of the configurations they extend from.

(*__since 2.5__*) Attributes inherited via link:extends{outfilesuffix}[`extends`] are added to `dependencies` only on link:../use/deliver{outfilesuffix}[delivery] and override attributes inherited from `configurations`.

== Attributes

[options="header",cols="15%,50%,35%"]
|=======
|Attribute|Description|Required
|defaultconf|the default configuration to use when none is specified in a dependency. (*__since 1.1__*)|No, defaults to `$$*->*$$`
|defaultconfmapping|the default configuration mapping to use in this Ivy file. (*__since 1.3__*)|No, defaults to no default conf mapping
|confmappingoverride|`true` to activate configuration mapping override, `false` otherwise. (*__since 1.4__*)|No, defaults to `false`
|=======


== Child elements


Note: as specified by the ivy.xsd, the children elements are ordered; first must come the `link:dependency{outfilesuffix}[dependency]` elements, then the `link:exclude{outfilesuffix}[exclude]` elements, then the `link:override{outfilesuffix}[override]` elements, and then the `link:conflict{outfilesuffix}[conflict]` elements.


[options="header",cols="20%,60%,20%"]
|=======
|Element|Description|Cardinality
|link:dependency{outfilesuffix}[dependency]|declares a dependency for this module|0..n
|link:exclude{outfilesuffix}[exclude]|excludes artifacts, modules or whole organizations from the set of dependencies of this module (*__since 2.0__*)|0..n
|link:override{outfilesuffix}[override]|specifies an override mediation rule, overriding the revision and/or branch requested for a transitive dependency (*__since 2.0__*)|0..n
|link:conflict{outfilesuffix}[conflict]|specifies a conflict manager for one or several dependencies (*__since 2.0__*)|0..n
|=======
