Как в ПОМ.xml для чего?
глядя на документацию http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html, мы видим <scope>
тег под <dependency>
что это такое и как мы можем использовать его для выполнения теста?
5 ответов:
The
<scope>
элемент может принимать 6 значений: compile,предоставил, runtime,тест,система и импорт.эта область используется для ограничения транзитивности зависимости, а также для влияния на путь к классам, используемый для различных задач сборки.
compile
это область по умолчанию, используемая, если она не указана. Компилировать зависимости являются доступен на всей пути к классам проекта. Кроме того, эти зависимости распространяются на зависимые проекты.
предоставил
Это очень похоже на компиляцию, но указывает, что вы ожидаете JDK или контейнер, чтобы обеспечить зависимостей во время выполнения. Например, при создании веб-приложения для Java Enterprise Edition необходимо установить зависимость от API сервлета и связанных API Java EE в область, предоставляемую веб-контейнером предоставляет эти классы. Эта область доступна только в пути к классам компиляции и тестирования и не является транзитивной.
runtime
эта область указывает, что зависимость не требуется для компиляции, но предназначена для выполнения. Он находится в пути выполнения и тестирования классов, но не в пути компиляции классов.
тест
эта область указывает, что зависимость не требуется для нормального использования приложение, и доступно только для этапов компиляции и выполнения теста.
система
эта область похожа на предоставленную, за исключением того, что вы должны предоставить банку, которая содержит ее явно. Артефакт всегда доступен и не просматривается в репозитории.
импорт (доступно только в Maven 2.0.9 или более поздней версии)
эта область используется только для зависимости типа pom в раздел. Это указывает на то, что указанный POM должен быть заменен зависимостями в разделе этого POM. Поскольку они заменяются, зависимости с областью импорта фактически не участвуют в ограничении транзитивности зависимости.
чтобы ответить на вторую часть вашего вопроса:
Как мы можем использовать его для выполнения теста?
отметим, что
test
объем позволяет использовать зависимости только для теста фаза.читать документация для полной информации.
шесть областей зависимостей в одной строке:
- compile: по умолчанию
- предоставил: С помощью JDK или контейнера во время выполнения
- runtime: не требуется для компиляции
- тест: используется только во время испытаний
- система: при условии локально
- импорт: доступно только в Maven 2.0.9 или более поздней версии