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

Это позволяет гибко управлять тем, когда и где зависимости доступны.