maven依赖关系中的scope

maven依赖关系中的scope

maven scope用来控制依赖artifact的作用范围和传递性依赖范围,这里范围是指针对maven不同目标的构建过程。

  1. compile,默认,项目编译、测试、打包发布都会包含该依赖;
  2. provided,项目编译、测试阶段会包含该依赖,项目打包发布过程不会包含该类型的依赖,需要由运行该项目的运行时环境(如web容器)提供该类型的依赖,典型的场景就是JavaEE规范相关的API如servlet-api,开发、测试阶段使用项目自身依赖,实际执行使用具体容器实现的JavaEE规范能力;
  3. runtime,项目测试、打包发布阶段包含该依赖,正常开发、编译阶段不需要此依赖,典型场景如基于JDBC进行具体数据源的连接需要oracle14.jar、mysql*.jar这些只在测试、运行时需要;
  4. test,只在项目测试阶段包含该依赖;
  5. system,与provided作用域相同,不同的地方是该类型依赖不会去maven repository查找需要手动指定具体依赖的路径;
  6. import,maven 2.0.9之后可用,主要用来解决多子pom.xml多重继承的场景;

你可能感兴趣的:(1001_软件设计)