Зависимости с определённой областью scope в Maven следует использовать в разных случаях, в зависимости от того, когда и как нужна та или иная библиотека. xygeni.io kickadda.com
Некоторые ситуации, в которых применяют разные области scope:
- Compile (область по умолчанию). xygeni.io www.geeksforgeeks.org Зависимости с этой областью доступны на всех этапах сборки: компиляция, тестирование и время выполнения. xygeni.io Разработчики используют её для основных библиотек, необходимых для их приложений. xygeni.io
- Provided. xygeni.io www.geeksforgeeks.org Зависимости с этой областью видимости требуются для компиляции кода проекта, но ожидается, что они будут предоставлены средой выполнения. www.geeksforgeeks.org Такие зависимости не поставляются с артефактом. www.geeksforgeeks.org Например, веб-приложения назначают javax.servlet API для предоставленной области действия, поскольку такие серверы, как Tomcat, уже предоставляют её. xygeni.io
- Runtime. xygeni.io kickadda.com Зависимости с такой областью видимости необходимы для выполнения исходного кода, но не требуются для компиляции. www.geeksforgeeks.org Например, драйвер JDBC (например, MySQL Connector) вписывается в область действия среды выполнения, поскольку подключение к базе данных происходит только во время выполнения. xygeni.io
- Test. xygeni.io kickadda.com Зависимости с такой областью видимости необходимы только для компиляции и запуска тестов, а не для производственного кода. www.geeksforgeeks.org Например, такие фреймворки, как JUnit и Mockito, относятся к области тестирования, поскольку разработчикам они нужны только для модульного тестирования. xygeni.io
- System. xygeni.io kickadda.com Зависимости с этой областью не извлекаются из репозитория Maven, а на них ссылаются из локальной системы. www.geeksforgeeks.org Эта область обычно не рекомендуется, поскольку она обходит управление зависимостями Maven. www.geeksforgeeks.org Например, устаревшие приложения могут использовать системную область действия, если требуемый JAR-файл отсутствует ни в одном репозитории. xygeni.io
- Import. xygeni.io kickadda.com Область действия используется для управления зависимостями в многомодульных проектах. xygeni.io Разработчики используют её для централизации управления версиями путём импорта спецификации материалов (BOM). xygeni.io Например, команда, работающая над несколькими микросервисами, может использовать область импорта, чтобы гарантировать, что все модули полагаются на одни и те же версии зависимостей. xygeni.io
Важно использовать подходящий scope для каждой зависимости, чтобы избежать неожиданного поведения и обеспечить эффективную работу проекта. kickadda.com