Maven(四)——POM继承与多模块构建

约定(惯例)优先于配置

  • 标准的目录结构
    • *.java放到src/main/java目录下
    • *.class在target目录下
    • 配置及静态文件
  • 这样做的好处就是:我们只需要把对应的源代码、文件放到正确的目录下,然后maven会自动帮我们找到,做其他所有的事情。
  • 项目描述符,pom.xml。

POM,项目对象模型

  • xml文件,pom.xml
  • project 等价于 artifact
  • 项目类型(packaging)
    • pom,jar,war
  • 坐标(groupId artifactId version)
  • 属性,${propery}
  • 依赖(dependency标签)
  • 构建配置(build标签,plugin标签)
  • 多项目(parent标签,modules标签)、继承
  • 项目总体信息(名称、作者、开源协议)

配置pom遇到的问题

在实际开发中,一个现实的项目一般都是把一个项目拆分成多个子项目,这样做的好处是把一个大项目模块化,每个模块可以分开进行开发。但是在一个由多个子项目构成的大项目,在maven的配置过程中,往往会遇到一些问题。

  • 多个子项目配置重复
  • 修改繁琐
  • 依赖版本不一致
  • 配置管理混乱
    这时,可以使用pom的继承,把公共的部分尝试提到父节点去,子节点从父节点继承。

pom的继承

  • 可以类比JAVA中的继承
  • 继承或者覆盖,Override
  • 可继承项
    • 坐标属性,如groupId
    • 依赖配置
    • 插件配置
    • 一般性信息,如开发者信息

Super POM

  • 所有Maven项目的POM都继承Super POM
  • 是Maven的组成部分
  • 超级POM定义了一组被所有项目共享的默认设置
    • 默认的文件位置
    • 统一的插件配置
    • 默认的中央仓库配置
    • 其他的一些设置
  • mvn help:effective-pom , 就是eclipse中 Effective POM 可以看到一个POM继承了Super POM中所有的配置项后最后的POM的样子。
  • 使用parent元素,可以显示配置父POM。

多项目构建

  • parent项目,项目类型是pom。
    • 定义modules。
  • 子模块中配置parent,继承。
  • 统一配置提到parent项目中。
  • 既使用继承又使用组合 。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值