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

Чем отличаются разделы dependency и dependencyManagement в файле настроек Maven?

Компании, где спрашивали
IT OneIT One

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

sobes.tech AI

В Maven разделы <dependencies> и <dependencyManagement> служат разным целям:

  • <dependencies> — это список зависимостей, которые непосредственно подключаются и используются в текущем проекте. Зависимости из этого раздела автоматически добавляются в classpath при сборке.

  • <dependencyManagement> — это раздел для централизованного управления версиями и конфигурациями зависимостей, но сами зависимости из него не подключаются автоматически. Он обычно используется в родительских POM или в корпоративных настройках, чтобы задать версии и параметры для зависимостей, которые потом можно подключать в дочерних модулях без указания версии.

Пример:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.3.20</version>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <!-- версия не указывается, берется из dependencyManagement -->
    </dependency>
</dependencies>

Таким образом, dependencyManagement задает стандарты и версии, а dependencies — фактически подключает зависимости.