先看看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: 系统依赖范围。(到现在为止我还没有用过,忽略好了)
有图看的才爽: