POM 是指 Project Object Model。POM 是一个 xml,在 Maven 里为pom.xml。是 Maven 工作的基础,在执行 task 或者 goal 时,Maven 会去项目根目录下读取 pom.xml 获得需要的配置信息。
POM 文件中包含了项目的信息和 maven build 项目所需的配置信息,通常有项目信息(如版本、成员)、项目的依赖、插件和 goal、build 选项等。
POM 是可以继承的,通常对于一个大型的项目或是多个 module 的情况,子模块的 POM 需要指定父模块的 POM。
可以参照 maven 官网上的文档
project:POM 文件的顶级元素; 任何你想 build 的事物,Maven 都会把它们当作是一个Project;这些 Project 被定义为 POM(Project Object Model);一个 Project 可以依赖其他的 project,一个 project 也可以有多个子 project 组成
modelVersion:所使用的 object model 版本,为了确保稳定的使用,这个元素是强制性的。除非 maven开发者升级模板,否则不需要修改
groupId:是项目创建团体或项目的唯一标志符,通常是域名倒写如:com.bjpowernode 或者 com.bjpowernode.p2p
artifactId:是项目 artifact 唯一的基地址名,通常指的是项目名或者模块名如:p2p 或者 dataservice
version:artifact 的版本,通常能看见为类似 0.0.1-SNAPSHOT,其中 SNAPSHOT 表示项目开发中,为开发版本
packaging:artifact 打包的方式,如 jar、war、ear 等等。默认为 jar。这个不仅表示项目最终产生何种后缀的文件,也表示 build 过程使用什么样的 lifecycle。
name:表示项目的展现名,在 maven 生成的文档中使用
url:表示项目的地址,在 maven 生成的文档中使用,通常不用
description:表示项目的描述,在 maven 生成的文档中使用
dependencies:表示依赖,在子节点 dependencies 中添加具体依赖的 groupId、artifactId 和 version,Maven在搭建工程时主要是编写依赖。编写依赖就是从官网上复制
build:表示 build 配置
parent:表示父 POM