一、什么是依赖范围
maven 项目不同的阶段引入到classpath中的依赖是不同的。
例如,编译时,maven 会将与编译相关的依赖引入classpath中;测试时,maven会将测试相关的的依赖引入到classpath中;运行时,maven会将与运行相关的依赖引入classpath中。
依赖范围就是用来控制何时将此依赖引入到classpath中。
二、依赖范围在pom.xml中如何体现
pom文件如下配置:
junit
junit
4.7
test
其scope标签就是依赖范围的配置,默认是compile,可选配置有test、provided、runtime、system、import。
三、有哪些依赖范围
既标签的可选配置:compile、test、provided、runtime、system、import,下面一一介绍。
编译依赖范围(compile)
该范围就是默认依赖范围,此依赖范围对于编译、测试、运行三种classpath都有效。举个简单的例子,假如项目中有spring-core的依赖,那么spring-core不管是在编译,测试,还是运行都会被用到,因此spring-core必须是编译范围(构件默认的是编译范围,所以依赖范围是编译范围的无须显示指定)
org.springframework
spring-core
2.5
compile