Sobes.tech
Назад к вопросам
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>