前言
发现自己对 Maven 的掌握不够,最近看了一遍 Maven 的教学视频,把一些关键内容记录下。
实现
依赖管理
-
路径优先
:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高。 -
声明优先
:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的。 -
特殊优先
:当同级配置了相同资源的不同版本,后配置的覆盖先配置的。
可选依赖
通过设置 optional
标签,可以实现控制依赖是否传递。
如果不设置 optional(默认) 或者 optional 是 false,则表示依赖会传递;如果设置为 true,则表示依赖不会传递。
通过设置 optional 标签可以有效控制依赖冲突的出现。
例如在 pom.xml 中添加如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<optional>true</optional>
</dependency>
排除依赖
在项目引入的依赖中,排除引入的依赖项目本身所引入的依赖。
例如如下示例,在引入 spring-boot-starter-web
依赖的同时,排除掉通过 spring-boot-starter-web
传递来的 junit
依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
依赖范围
资源配置
在 pom.xml 中,我们可以 properties
标签中配置一些资源,例如数据库的 URL、用户名、密码等,同时在 resources 文件中通过 ${jdbc.url}
格式来进行引用。
博主个人测试
${jdbc.url}
未生效(可能是哪里配置有问题),通过这种格式spring.datasource.url=@jdbc.url@
是生效的。
多环境配置
Nexues私服
注:
- 仓库资源来源的 URL 为资源群组的 URL。
总结
近期又看了一遍 Maven 基础的课程,总结记录一下关键知识点。