POM( Project Object Model,项目对象模型 ) 是 Maven 工程的基本工作单元,是一个XML文件,包含了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。
执行任务或目标时,Maven 会在当前目录中查找 POM。它读取 POM,获取所需的配置信息,然后执行目标。
POM 中可以指定以下配置:
- 项目构建 profile
- 项目依赖
- 插件
- 执行目标
- 项目版本
- 项目开发者列表
- 相关邮件列表信息
创建POM 文件pom.xml
在项目根目录下创建pom.xml文件。
pom.xml:
所有 POM 文件都需要 project 元素和三个必需字段:groupId,artifactId,version。
- project是工程的根标签
- modelVersion要设置为4.0.0
- groupId是工程组的标识
- artifactId是工程的标识,通常是工程的名称。groupId和artifactId一起定义了artifact在仓库中的位置
- version是工程的版本号,在 artifact 的仓库中,它用来区分不同的版本,如:com.companyname.project-group:project-name:1.0
父(Super)POM
父(Super)POM是 Maven 默认的 POM。所有的 POM 都会继承自一个父 POM(无论是否显式定义了这个父 POM)。父 POM 包含了一些可以被继承的默认设置。因此,当 Maven 发现需要下载 POM 中的依赖时,它会到 Super POM 中配置的默认仓库去下载。
Maven 使用 effective pom来执行相关的目标,它帮助开发者在 pom.xml 中做尽可能少的配置(Super pom 加上工程自己的配置),当然这些配置可以被重写。
使用以下命令来查看 Super POM 默认配置:
POM 标签可参考《POM 标签大全》