Sobes.tech
Назад к вопросам
Junior — Middle
62

Какая разница существует между блоками dependencyManagement и dependencies в файле конфигурации проекта?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

В 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> — фактические зависимости проекта.