maven的<scope>规定了依赖的范围。
mavne的每一个范围都和一个特定的classpath相关。例如测试的时候把Junit加入到classpath里,但是打包的时候却不放进去。
mavne的特定calsspath 分为编译时,编译执行测试时,运行时。
mavne的依赖范围有
-
compile 默认的。在编译,运行,测试都有效。
-
test 测试时依赖有效。在编译主代码或者运行项目的时候都无法使用这个类。
-
provided 在编译和测试的时候依赖有效,但是运行时无效。例如servlet-api, 因为项目运行的时候容器(TOMcat)会提供的。
-
runtime 测试和运行有效,但是编译主代码的时候无效。例如JDBC驱动的实现,在项目编译的时候只需要JDK提供的JDBC接口,只有在执行测试或者运行项目的时候才需要实现上述接口的具体的JDBC驱动。
-
system 这种依赖不通过maven解析,和本机系统是绑定的,用于规定个别很特殊的外部依赖包。
-
import