Maven:基础使用

郎家岭伯爵 2023年12月07日 365次浏览

前言

发现自己对 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 基础的课程,总结记录一下关键知识点。