Секция управляет решением споров версий зависимостей, которые в проекте не явные, а подтянулись как зависимости зависимостей.
Dependency mediation очень часто не подходит как готовое решение зависимостей.
Dependency mediation - это механизм решения какую версию зависимости използьвать, если она непрямая, а находится в нескольких деревьях зависимостей прямых зависимостей. По этому механизму версия определяется той веткой, где зависимость находится ближе в иерархии.
Пример
Проект:
- Зависимость1
- Зависимость2
Зависимость1:
- Подзависимоть11 -> Подзависимоть111-> Общаязависимость(версия: 2)
Зависимость2:
- Подзависимоть21 -> Общаязависимость(версия: 1)
Значит в результате у нас в проекте окажется версия 1.
Иногда это совсем не подходит, и тогда и приходит на выручку секция:
<dependencyManagement<
....
</dependencyManagement>
В ней мы явно можем определить нашей общей зависимости необходимую версию. И вообще все версии вложенных и прямых зависимостей определить здесь.
Чудесная коцепция BOM ( bill of materials) - ведомость материалов. По которой мы в нашем проекте создаем артефакт типа pom, который содержит все версии артефактов, которые мы собираемся использовать по проекту(в разных его модулях). И такой артефакт мы указываем в в секции dependencyManagement под скоупом import(такой скоуп можно указывать только на артефакты pom). По сути BOM содержит только dependencyManagement секцию и не содержит секции dependencies - этот артефакт не приносит никаких реальных зависимостей, а только определяет версии для тех, которые мы будем подтягивать в наших модулях.