Maven依赖范围
先看看Maven依赖的配置
<dependencies> <dependency> <groupId>....</groupId> <artifactId>......</artifactId> <version>........</version> <type>......</type> <scope>....</scope> <optional>...</optional> <exclusions> .......... </exclusions> </dependency> ............ </dependencies>当中:
groupId,artifactId和version:依赖的基本坐标(坐标就不描写叙述了,上过学的都知道)
type: 依赖的类型,默认值是jar(知道有即可。非常少用忽略)
scope: 依赖的范围(这个重要。以下继续讲)
optional: 标记依赖是否可选
exclusions: 排除传递性依赖
依赖范围:
说白了就是控制依赖与编译classpath,測试classpath,执行classpath的关系。
依赖范围參数:
compile: 编译依赖范围,对于编译、測试、执行三种classpath都有效。默认情况使用该依赖范围。
test: 測试依赖范围,仅仅对于測试classpath有效。仅仅有在编译測试代码及执行測试的时候才须要,eg:JUnit
provided: 已提供依赖范围,仅仅对于编译和測试classpath有效。仅仅有在编译和測试项目的时候才须要。eg:servlet-api
runtime: 执行时依赖范围。仅仅对于測试和执行classpath有效。仅仅有在执行測试或者执行项目的时候才须要,eg:JDBC
system: 系统依赖范围。(到如今为止我还没实用过,忽略好了)
有图看的才爽: