Sobes.tech
Back to questions
Junior — Middle
68

Какие уровни области видимости зависимостей поддерживаются в Maven?

Companies where asked
СБЕРСБЕР

Answer from AI

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>

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