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