Ответ
Dependency Management (Управление зависимостями) — это практика и набор инструментов для автоматизации работы с внешними библиотеками и их версиями в проекте. Основная цель — избавить разработчика от ручного управления файлами зависимостей (например, .jar в Java).
Решаемые проблемы:
- Ручная загрузка: Не нужно искать и скачивать библиотеки вручную.
- Транзитивные зависимости: Автоматическое разрешение и загрузка библиотек, от которых зависят ваши прямые зависимости.
- Конфликты версий: Инструменты помогают разрешать ситуации, когда разные библиотеки требуют несовместимые версии одной и той же зависимости.
- Воспроизводимость сборки: Гарантия, что все разработчики и системы сборки используют одинаковые версии библиотек.
Пример на Maven (pom.xml):
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.3.20</version>
</dependency>
</dependencies>
Maven автоматически загрузит указанную версию spring-core и все её транзитивные зависимости из центрального репозитория (Maven Central).
Популярные инструменты: Maven, Gradle (Java), npm (JavaScript), pip (Python), Composer (PHP).