mirror of https://github.com/apache/ant-ivy
51 lines
2.0 KiB
Plaintext
51 lines
2.0 KiB
Plaintext
|
|
*Tag:* conflicts *Parent:* link:../ivyfile.html[ivy-module]
|
|
|
|
|
|
|
|
*__(since 2.0)__* the conflicts section is deprecated. Use the link:../ivyfile/conflict.html[conflict] instead.
|
|
|
|
Container for conflict manager elements, used to indicate how conflicts should be resolved
|
|
for this module.
|
|
|
|
|
|
|
|
The list of built-in conflict managers available is listed on the link:../settings/conflict-managers.html[conflict manager configuration page].
|
|
|
|
|
|
|
|
Conflicts manager are used during the resolve operation, i.e. when ivy analyse the graph of dependencies
|
|
and download corresponding ivy files and artifacts. The fact to manage conflict at resolve time
|
|
enables to minimize downloads: when a module is evicted by a conflict manager, it is not downloaded.
|
|
|
|
|
|
|
|
There are two things optimized during conflict resolution: download of artifacts and download
|
|
of ivy files. The first is always ensured by ivy, i.e. artifacts of a module evicted will never
|
|
be downloaded. The second is not as simple to handle because to know what are the conflicts
|
|
ivy needs to know the dependency graph, and to know the dependency graph, it has to download
|
|
ivy files. But ivy is highly optimized on this too, and it tries to evict modules as soon as possible.
|
|
|
|
That's why the order of dependencies is important for download optimization. Indeed ivy
|
|
traverses the dependency graph in the order in which dependencies are declared in the ivy files,
|
|
and each time it encounters a dependency on a module, it first check if there is a conflict on this module,
|
|
and if this is the case, it asks the conflict manager to resolve the conflict. Then if the module is evicted,
|
|
it does not download its ivy file, and the whole branch is not traversed, which can saves
|
|
a lot of time.
|
|
|
|
|
|
|
|
If this container is not present, a default conflict manager is used for all modules.
|
|
The current default conflict manager is the "latest-revision" conflict manager.
|
|
|
|
== Child elements
|
|
|
|
|
|
[options="header"]
|
|
|=======
|
|
|Element|Description|Cardinality
|
|
|link:../ivyfile/manager.html[manager]|declares a conflict manager for this module|1..n
|
|
|=======
|
|
|
|
|
|
|