scope属性
scope属性
scope属性表示的是jar包的依赖范围,有五种依赖范围,只要用来配置jar的依赖范围,排除不需要的jar包和解决jar包冲突问题。(jar包冲突问题:比如我们上一个项目中使用到的servlet-api.jar包,该包时tomcat下的一个jar包,当我们在我们的项目中配置了该jar包,如果scope属性没有选择provided,在运行时就会出现两个该jar包,运行就会报错)。
下面对五种类型进行详细的说明。
依赖范围 | 对于编译有效 | 对于测试有效 | 对于运行有效 | 举例 |
compile | Y | Y | Y | spring-core |
test | - | Y | - | JUnit |
provided | Y | Y | - | servlet-api |
runtime | - | Y | Y | JDBC驱动 |
system | Y | Y | - |
本地的,Maven仓库 之外的类库 |
1、compile :该范围全局有效,在编译,测试,运行时到要使用。
2、test :该范围只有在测试时才会才有效,也就是说该jar包只有在测试时才会使用的到。
3、provided:该范围在编译和测试时候有效,在运行时无效,打包项目是不会打包。
4、runtime:该范围在测试和运行时有效。
5、system:该范围在编译和测试时有效。