scope 元素为maven dependency下面一个控制作用域的子元素,maven官方称为transitive dependencies有6个可选值,其值可以为:compile, provided, runtime, test, system and import,各自的作用为:
- compile:这个是maven默认的scope属性,也就是整个project的classpath
2.provided: provided与compile基本相同,但表示需要JDK或者容器提供一个运行时的依赖,比如说当部署运行一个web应用时,这时候 servlet api或者类似的J2EE的API需要将scope写成provided,该属性不具备传递性,不会出现在打出的war包中
runtime:显然,就表示该依赖不一定需要在编译期使用,只需要运行时使用,包括运行时classpath和test classpath
test:表示测试时依赖使用
5.system:与provided类似 唯一不同的时 需要提供一个明确包含该jar,该jar包的aritfact是基于本地,不是maven 三方库中的,正常情况下不使用
6.import: 仅maven 2.0.9版本之后才支持该scope,并且仅可用于 pom类型的依赖,该属性打破了依赖的传递性,指定使用特定的pom