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