maven scope的汇总
1、自建 starter 的一些关于 maven 的记录。
可以减小 jar 包的大小,不做依赖传递
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<!-- 依赖 传递 true, 不传递。 默认是false-->
<optional>true</optional>
</dependency>
控制 依赖的使用范围
常见的有 compile, provided, runtime, test, system 等
-
compile
- 默认值
-
test
- 仅参与测试环节,在编译、运行、打包时不会使用
-
runntime
- 适用于运行和测试环节
-
provided -已提供
- 在编译和测试的环境,和compile功能相似,但provide仅在编译和测试阶段生效,provide不会被打包,也不具有传递性。
-
system
-
同 provided,但是 依赖 从 本地 获取
-
结合systemPath 使用
-
<dependency> <groupId>sun.jdk</groupId> <artifactId>tools</artifactId> <version>1.5.0</version> <scope>system</scope> <systemPath>${java.home}/../lib/tools.jar</systemPath> </dependency>
-
参考: