Вопросы к Поиску с Алисой
Разница между Maven scope compile и provided заключается в том, как обрабатываются зависимости на разных этапах жизненного цикла проекта. howtodoinjava.com
Compile — это дефолтный объём, при котором зависимости доступны во всех путях к классам проекта на всех этапах сборки. maven.apache.org www.baeldung.com Они также распространяются на зависимые проекты. www.baeldung.com
Provided используется для маркировки зависимостей, которые должны быть предоставлены во время выполнения JDK или контейнером. www.baeldung.com Например, при сборке веб-приложения для Java Enterprise Edition с помощью этого объёма устанавливают зависимость от Servlet API и связанных API Java EE, потому что веб-контейнер предоставляет эти классы. maven.apache.org Зависимость с таким объёмом добавляется в путь к классам, используемый для компиляции и тестирования, но не в путь к классам во время выполнения. maven.apache.org
Таким образом, основное различие в том, что зависимости с объёмом compile доступны во всех путях к классам, а с объёмом provided — только в путях к классам для компиляции и тестирования, при этом они не упаковываются. stackoverflow.com