Глядя на документацию http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html , мы можем увидеть <scope>
тег под<dependency>
Что это такое и как мы можем использовать его для запуска теста?
Глядя на документацию http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html , мы можем увидеть <scope>
тег под<dependency>
Что это такое и как мы можем использовать его для запуска теста?
Ответы:
<scope>
Элемент может принимать 6 значений: при компиляции , при условии , во время выполнения , тестирование , система и импорта .
Эта область используется для ограничения транзитивности зависимости, а также для влияния на путь к классам, используемый для различных задач сборки.
компиляции
Это область по умолчанию, используемая, если ни одна не указана. Зависимости компиляции доступны во всех классах пути проекта. Кроме того, эти зависимости распространяются на зависимые проекты.
при условии
Это очень похоже на компиляцию, но указывает, что вы ожидаете, что JDK или контейнер предоставят зависимость во время выполнения. Например, при создании веб-приложения для Java Enterprise Edition вы должны установить зависимость от API-интерфейса сервлета и связанных API-интерфейсов Java EE, так как веб-контейнер предоставляет эти классы. Эта область доступна только в пути к классам компиляции и тестирования и не является транзитивной.
время выполнения
Эта область указывает, что зависимость не требуется для компиляции, но предназначена для выполнения. Он находится во время выполнения и пути к классам теста, но не в пути к классам компиляции.
тест
Эта область указывает, что зависимость не требуется для обычного использования приложения и доступна только для фаз компиляции и выполнения теста.
система
Эта область похожа на предоставленную, за исключением того, что вы должны предоставить JAR, который содержит ее явно. Артефакт всегда доступен и не просматривается в хранилище.
импорт (доступен только в Maven 2.0.9 или более поздней версии)
Эта область используется только для зависимости типа pom в разделе. Это указывает на то, что указанное POM должно быть заменено зависимостями в разделе этого POM. Поскольку они заменяются, зависимости с областью импорта фактически не участвуют в ограничении транзитивности зависимости.
Чтобы ответить на вторую часть вашего вопроса:
Как мы можем использовать его для запуска теста?
Обратите внимание, что test
область действия позволяет использовать зависимости только для фазы тестирования.
Прочитайте документацию для получения полной информации.
Шесть областей зависимостей:
src/main
иsrc/test
src/test
<dependencyManagement/>
, доступные только в Maven 2.0.9 или новееТег Scope всегда используется для ограничения транзитивных зависимостей и доступности jar на уровне пути к классу. Если мы не предоставляем никакой области видимости, то будет работать область по умолчанию, т.е. Compile .
Если мы не предоставляем никакой области видимости, то областью по умолчанию является компиляция. Если вы хотите подтвердить, просто перейдите на вкладку Effective pom в редакторе Eclipse, он покажет вам как компиляцию.