Назад к вопросам
СБЕР
Junior — Middle
67
Какие уровни области видимости зависимостей поддерживаются в Maven?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Maven поддерживаются следующие основные уровни области видимости (scope) зависимостей:
- compile (по умолчанию): зависимость доступна во всех фазах сборки и в рантайме.
- provided: зависимость нужна для компиляции, но не включается в итоговый артефакт, так как предполагается, что она будет предоставлена средой выполнения (например, сервлет API).
- runtime: зависимость не нужна для компиляции, но нужна во время выполнения.
- test: зависимость используется только для тестирования, не включается в финальный артефакт.
- system: похожа на provided, но требует указания пути к локальному файлу; не рекомендуется к использованию.
Пример:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
Это позволяет гибко управлять тем, когда и где зависимости доступны.