ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
[TOC] # Compile 编译(compile)时需要 测试时需要,运行时需要,打包时需要 # Provided jsp-api.jar servlet-api.jar 编译(compile)时需要,测试(test)时也需要 ,运行时不需要,打包时不需要 # Runtime 数据库驱动包 编译时不需要,测试时需要,,运行时需要,打包时需要 # Test junit.jar 编译时不需要,测试时需要,运行时不需要,打包也不需要 ![](https://img.kancloud.cn/9f/17/9f1781a0a57aa88ab8d79d0f4cfe33b3_979x536.png) # system(系统范围) system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中JAR文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven也不会在仓库中去寻找它。 **如果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素** 。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用依赖) # 父子工程的情况 `-`表示传递丢失,也就是不能用了. 直接依赖作用域默认是compile 实际开发中,如果传递依赖丢失,表现形式就是jar包的坐标导不进去,我们的做法是直接再导入一次. ![](https://img.kancloud.cn/bf/b6/bfb64d7a0eb7827766c17563645b9889_1025x286.png) ## relativePath springboot框架搭建的时候,采用官方文档 ~~~ <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.6.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> ~~~ 设定一个空值将始终从仓库中获取,不从本地路径获取,如`<relativePath />` **Maven parent.relativePath** 默认值为../pom.xml 查找顺序:relativePath元素中的地址–本地仓库–远程仓库