依赖范围scope用来控制依赖和编译,测试,运行的classpath的关系。依赖范围有六种
- compile:编译域,这个是Maven中scope的默认值,不写scope配置时默认就是使用这个值,compile表示被依赖项目需要同当前项目编译时一起编译,项目测试期以及本项目运行时同样生效,打包的时候需要包含进去
- test:测试域,表示被依赖的项目仅仅在项目进行测试时生效,项目运行时不会生效
- provided:表示打包的时候不用讲provided域的包打进去
- runtime:运行域,表示被依赖的项目不会参与项目的编译,但项目的测试时期和运行时期会参与,与compile相比,跳过了编译时期。
- system:跟provide相似,但是在系统中要以外部jar包的形式提供,Maven不会在仓库中查找它
- import:只使用在 <dependencyManagement>中,表示从其他pom文件中导入dependency的配置