pom.xml文件中dependency标签的scope属性的几种取值及对应的项目阶段
scope属性值类型:compile(默认):编译范围、provided:提供范围、runtime:系统运行时、test:测试阶段、system:系统范围
项目阶段生命周期:compile:编译阶段、test:测试阶段、run:运行阶段、deploy:发布阶段
scope | compile | test | run | deploy | 备注 |
---|---|---|---|---|---|
compile | √ | √ | √ | √ | compile是默认的范围,当dependency下没有限定范围,则使用compile,此范围在所有的classpath中可用,并且也会被发布,同时也会传递到依赖的项目中 |
provided | √ | √ | √ | - | provided表示dependency由JDK或者容器提供,该范围在编译,测试,运行时可用,发布时不可用,也不能被传递,比如在打war包的时候需要 |
runtime | - | √ | √ | √ | runtime表示在系统运行或者测试的时候需要,但是编译和打包不需要,与compile相比,跳过了编译而已,比如JDBC驱动,适用运行和测试阶段 |
test | - | √ | - | - | test范围表示测试编 |