查看文档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>
那是什么,我们如何使用它进行测试?
Answers:
该<scope>
元素可以采用6个值:编译,提供,运行时,测试,系统和导入。
此作用域用于限制依赖项的可传递性,并且还影响用于各种构建任务的类路径。
编译
这是默认范围,如果未指定则使用。编译依赖项在项目的所有类路径中均可用。此外,这些依赖项会传播到相关项目。
提供
这很像编译,但是表明您希望JDK或容器在运行时提供依赖项。例如,在为Java Enterprise Edition构建Web应用程序时,您将对Servlet API和相关Java EE API的依赖关系设置为提供的范围,因为Web容器提供了这些类。该作用域仅在编译和测试类路径上可用,并且不可传递。
运行
此作用域表明依赖关系不是编译所必需的,而是执行所必需的。它在运行时和测试类路径中,但不在编译类路径中。
测试
此范围表明该依赖关系对于正常使用该应用程序不是必需的,并且仅在测试编译和执行阶段可用。
系统
此范围与提供的范围类似,不同之处在于您必须提供显式包含它的JAR。该工件始终可用,并且不会在存储库中查找。
进口(仅在Maven 2.0.9或更高版本中可用)
该范围仅在本节中用于pom类型的依赖项上。它指示应使用该POM部分中的依赖项替换指定的POM。由于已将它们替换,因此具有导入范围的依赖项实际上并不参与限制依赖项的可传递性。
要回答问题的第二部分:
我们如何使用它进行测试?
请注意 test
范围仅允许将依赖项用于测试阶段。
阅读文档以获取全部详细信息。
六个依赖范围:
src/main
和src/test
src/test
<dependencyManagement/>
,仅在Maven 2.0.9或更高版本中可用范围标记始终用于在类路径级别限制jar的传递依赖关系和可用性。如果我们不提供任何范围,则默认范围将起作用,即Compile。