maven进阶

目录

  • 分模块开发意义
  • 依赖管理
    • 依赖传递
    • 依赖冲突
    • 可选依赖
    • 排除依赖
  • 继承
  • 属性
  • 私服

分模块开发意义

  • 将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享。
    将项目spring-mybaits中的com.wangpeng.pojo中的POJO类抽取出来,放入一个单独的项目中去,即项目pojo。
    maven进阶_第1张图片
    maven进阶_第2张图片
    然后再将pojo依赖添加到spring-mybatis中的pom.xml文件中去。
    maven进阶_第3张图片

maven进阶_第4张图片

通过maven指令 install 是将模块打成jar包保存在本地仓库中。

maven进阶_第5张图片

依赖管理

依赖传递

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源

maven进阶_第6张图片

依赖冲突

依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成了包版本冲突。
那么应该解析哪个jar包,这里就涉及到了一系列规则了。

  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

  • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高

  • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的

可选依赖

可选依赖是隐藏本身,外界访问不到。
maven进阶_第7张图片

maven进阶_第8张图片

排除依赖

排除依赖可以简单的理解为去其糟粕,取其精华。
maven进阶_第9张图片

继承

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

maven进阶_第10张图片

如果不想父类中的依赖全部都被子类继承的话,可以定义依赖管理器。下图中父模块中依赖管理器中定义了druid依赖包。

maven进阶_第11张图片

这时你会发现,son模块中没有druid模块。
如果你想要使用父模块中的依赖,则需要在子类中写入druid依赖

maven进阶_第12张图片
maven进阶_第13张图片

属性

spring版本不一致会导致错误,所以可以定义一个属性将版本号保存·起来。然后要使用的时候用 ${属性名}

maven进阶_第14张图片
maven进阶_第15张图片

私服

私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题。

Nexus Repository

你可能感兴趣的:(maven,maven)