В Maven (системе сборки для Java) блоки <dependencyManagement> и <dependencies> имеют разные назначения:
Какая разница существует между блоками dependencyManagement и dependencies в файле конфигурации проекта?
В Maven (системе сборки для Java) блоки dependencyManagement и dependencies имеют разные назначения:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Maven (системе сборки для Java) блоки <dependencyManagement> и <dependencies> имеют разные назначения:
<dependencyManagement>— используется для централизованного управления версиями и настройками зависимостей. В этом блоке вы объявляете зависимости с их версиями, но они не добавляются автоматически в проект. Это удобно для управления версиями в многомодульных проектах.<dependencies>— здесь указываются зависимости, которые непосредственно подключаются к проекту и будут включены в сборку.
Пример:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.10</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<!-- версия не указывается, берется из dependencyManagement -->
</dependency>
</dependencies>
Таким образом, <dependencyManagement> задает версии и настройки, а <dependencies> — фактические зависимости проекта.