Maven进阶


Maven

maven进阶

分模块开发与设计

  • 将原始模块按照功能拆分为若干个子模块,方便模块之间的相互调用,接口共享

    image-20231129215129691

依赖管理

  • 依赖具有传递性

    • 直接依赖
    • 间接依赖
  • 依赖冲突

    • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
    • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
    • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的
  • 可选依赖

    • true:隐藏当前工程所依赖的资源,隐藏后对应资源不再具有依赖传递性,即其他模块无法引用这个资源
  • 排除依赖:排除某个依赖

    xxx

    xxx

聚合和继承

  • 聚合(当多个模块之间存在依赖关系时,其中一个模块的更新可能会影响其他的模块的正常运行,所以必须保障工程中与已更新模块关联的模块同步更新,此时可以使用聚合工程来解决批量模块同步构建的问题)

    • 将多个模块组织成一个整体,同时进行项目构建的过程称为聚合
    • 聚合工程:通常是一个不具有业务功能的空工程(有且仅有一个pom文件)
    • 作用:使用聚合工程可以将多个工程编组,通过对聚合工程进行构建,实现对所包含的模块进行同步构建

    image-20231129221531653

    image-20231129221546973

    image-20231129221555798

  • 继承

    • 继承描述的是两个工程间的关系,与java的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承

    image-20231129221846100

    image-20231129221854813

    image-20231129221905484

    image-20231129221912772

    image-20231129221927973

    image-20231129222026287

聚合继承的区别

  • 作用
    • 聚合用于快速构建项目
    • 继承用于快速配置项目
  • 相同
    • 聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
    • 聚合和继承均属于设计型模块, 无实际的模块内容
  • 不同
    • 聚合是在当前模块中配置关系,聚合可以感知到参与模块的聚合的模块有哪些
    • 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

属性管理

image-20231129222558480

image-20231129222607074

image-20231201162213400

多环境配置与应用

image-20231201162228015

image-20231202015349194

image-20231202015426509

  • 跳过测试(执行的项目构建指令必须包含测试生命周期,否则无效果。例如执行compile生命周期,不经过test测试)

    • 细粒度控制跳过测试

      image-20231202020148163

    • 指令

      image-20231202015933768

私服

  • 私服简介

    • 私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题(私服例子:nexus)

      image-20231202020432067

  • 私服仓库分类

    image-20231202021246630

  • 资源上传与下载

    image-20231202021646685

    • 本地仓库配置(修改maven本地配置文件,也就是安装路径的conf文件夹下的setting.xml文件)

      image-20231202022855117

      image-20231202022934360

      • 工程上传到私服服务器设置(deploy)

        image-20231202023020478


文章作者: Jason
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Jason !
  目录