说一下对于maven中的几种范围的理解

1、compile 的范围

当我们在pom.xml文件中的<scope></scope>标签中依赖为compile的时候,会在编译的时候将这个依赖加入进来,并且在打包(mvn package)的时候也会将这个依赖加入进去。简单来说就是编译和打包的时候直接加入,其他时候不会加入!

2、provided的范围  

           在编译和测试的时候有效,在执行(mvn package)进行打包jar或者war包的时候不会加入,如果加入会出现包的冲突。

3、test的范围 

           意思是在测试的时候才会真正生效,但是其他的时候就不会,比如单元测试的时候你加入@Test注解时候会自己生效的,不用管它。

4、runtime的范围

           同理在运行的时候才会依赖,在编译的时候不会依赖啦。。。