Maven的pom.xml文件简称POM (Project Object Model),是Maven项目的配置和管理核心。
pom.xml文件包含大量配置信息,这些信息大致可以分为5类。

1、POM的模型版本
<modelVersion>4.0.0</modelVersion> //说明:在Maven2和Maven3中,只支持4.0.0版本。

2、基本配置

<groupId>…</groupId>//不可变更点 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成
 <artifactId>…</artifactId> //本项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的
 <version>…</version> //项目版本
 <packaging>…</packaging>//packaging给出了项目的打包类型,即作为项目的发布形式,其可能的类型。
 <dependencies>…</dependencies>//Maven项目的构建往往要依赖于第三方的类库。通过<dependencies>可以给出Maven项目所依赖的第三方类库
 <parent>…</parent> //依赖的父工程
 <dependencyManagement>…</dependencyManagement> //Maven 3支持Maven项目的多模块(multi-modules)结构。这样的Maven项目也被称为聚合项目,通常由一个父模块和若干个子模块构成。
 其中,父模块必须以pom打包类型,同时以<modules>给出所有的子模块。父模块的POM示例(其中的每个module,都是另外一个Maven项目)
 <modules>…</modules>
 <properties>…</properties> //为pom定义一些常量,在pom中的其它地方可以直接引用

3、Build配置
<build>…</build> //使用的插件列表
<reporting>…</reporting> //Maven的site阶段,用于生成报表

4、环境配置

<issueManagement>…</issueManagement> //项目的问题管理系统(Bugzilla, Jira, Scarab,或任何你喜欢的问题管理系统)的名称和URL
 <mailingLists>…</mailingLists> //本项目相关 mail list, 用于订阅等信息
 <distributionManagement>…</distributionManagement> //用于配置分发管理,配置相应的产品发布信息,主要用于发布,在执行mvn deploy后表示要发布的位置
 <scm>…</scm> //scm(software configuration management)标签允许你配置你的代码库,为Maven web站点和其它插件使用
 <repositories>…</repositories> //maven proxy, 本地仓库,替代 maven.apache.org 网站 jar 列表,用户下载时,首先寻找该站点
 <profiles>…</profiles> //根据不同的构件环境,对构建(build)过程进行动态配置的手段

5、其他信息

<name>…</name> //项目的名称代号
 <description>…</description> //项目的说明
 <url>…</url> //项目的官网URL
 <inceptionYear>…</inceptionYear> //项目的开发年份
 <licenses>…</licenses> //项目使用的License。其中可以包含多个license
 <organization>…</organization> //包含组织的name,组织的官网url
 <developers>…</developers> //开发者信息 其中的developer包含id, name, email, url, organization, organizationUrl, roles, timezone, properties属性(properties是可以自定义的各种必要属性)