Как в ПОМ.xml для чего?


глядя на документацию http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html, мы видим <scope> тег под <dependency>

что это такое и как мы можем использовать его для выполнения теста?

5 127

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 или более поздней версии

тег Scope всегда используется для ограничения транзитивных зависимостей и доступности jar на уровне пути к классу.Если мы не предоставляем никакой области, то область по умолчанию будет работать т. е. Compile .

добавлены хорошие изображения с объяснением областей

enter image description here

enter image description here

Если мы не предоставляем какую-либо область, то область по умолчанию компилируется, если вы хотите подтвердить, просто перейдите на вкладку Effective pom в Редакторе eclipse, она покажет вам, как скомпилировать.