Skip to content

maven

常见依赖声明

关键词作用特点适用场景
compile默认范围,用于编译和运行时都需要的依赖。- 如果未指定 <scope>,默认为 compile
- 依赖会传递到其他模块中。
核心库,如日志框架(SLF4J)、通用工具类库等。
provided编译期需要,但运行时由外部环境(如服务器)提供。- 编译时有效,运行时不打包到最终应用中。
- 不会传递到其他模块中。
由容器或环境提供的库,如 Servlet API、Java EE 等。
runtime运行时需要,但编译期不需要。- 不用于编译时,但会加入到运行时类路径。数据库驱动(如 JDBC 驱动)等运行时加载的类。
test仅用于测试编译和运行,不会影响生产代码。- 不会传递到其他模块中。单元测试框架(如 JUnit、Mockito 等)。
system类似 provided,但需要显式指定依赖的本地路径。- 不会从远程仓库下载,依赖由 <systemPath> 指定。
- 不推荐使用。
使用本地的 JAR 文件,特别是在远程仓库无此依赖时。
import导入依赖集合(通常为 BOM 文件),不会直接加入类路径,仅用于版本管理。- 仅在 <dependencyManagement> 中使用。
- 常用于管理多模块项目中的版本一致性。
Spring Boot 中 spring-boot-dependencies 的 BOM 管理等。