详情参考:史上最全的Maven Pom文件标签详解
父项目 非必须
<!-- 父项目 -->
<!-- 所有的 POM 都继承自一个父 POM(无论是否显式定义了这个父 POM),超级pom为 effective-pom-->
<!-- mvn help:effective-pom :会打印出一个XML文档,该文档的内容是超级POM和项目POM内容的合并。 -->
<parent>
<!-- 父项目基础信息 -->
<groupId></groupId><artifactId></artifactId><version></version>
<!-- 父项目的pom.xml文件的相对路径 默认值是../pom.xml -->
<!-- Maven首先在构建当前项目的地方寻找父项 目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom -->
<relativePath></relativePath>
</parent>
项目构建环境中的前提条件 非必须
<prerequisites>
<-- 定义依赖maven的最低版本 -->
<maven.compiler.source>1.8</maven.compiler.source>
</prerequisites>
必须的基础标签
<!-- 这个标签必须存在,而且它的值必须是4.0.0,这标志着我们现在使用的是maven2。 -->
<modelVersion>4.0.0</modelVersion>
<!-- 下面三个 确定一个项目 以及不同的版本-->
<groupId>com.family168.maven2book</groupId>
<artifactId>ch07</artifactId>
<!-- 版本号格式为:主版本.次版本.增量版本-限定版本号 -->
<version>1.0</version>
其他标签
<!--项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型-->
<packaging></packaging>
<!-- 项目的问题管理系统 -->
<issueManagement></issueManagement>
<!-- 项目持续集成信息 用于项目构建成功、失败、错误等 通知到具体的系统 -->
<ciManagement></ciManagement>
<!--项目相关邮件列表信息-->
<mailingLists></mailingLists>
<!--项目开发者列表-->
<!--项目的其他贡献者列表-->
<contributors></contributors>
<developers></developers>
<!-- 项目创建年份,4位数字。当产生版权信息时需要使用这个值 -->
<inceptionYear></inceptionYear>
<!-- 该元素描述了项目所有License(执照)列表 -->
<licenses></licenses>
<!--SCM(Source Control Management)标签允许你配置你的代码库,供Maven web站点和其它插件使用。-->
<scm></scm>
<!-- 项目名称 -->
<name></name>
<!-- 项目主页的URL -->
<url></url>
<!-- 项目的详细描述 -->
<description></description>
<!--描述项目所属组织的各种属性 -->
<organization></organization>
依赖管理
<!-- dependencyManagement 不是必选 用來定义版本号 -->
<dependencyManagement>
<!-- dependencies 管理所有的 dependency(依赖) -->
<dependencies>
<!-- 单独的一个dependency 必须包含maven 三个最小单元 groupId 、artifactId、version -->
<!-- 如果沒有定义 version ,maven会去 dependencyManagement 找对应的版本号,可以定义在当前pom,当前没有找父pom -->
<dependency> </dependency>
</dependencies>
</dependencyManagement>
项目构建
<!--产生的构件的文件名,默认值是${artifactId}-${version}。-->
<finalName/>
<!--子项目可以引用的默认插件信息。该插件配置项直到被引用时才会被解析或绑定到生命周期。给定插件的任何本地配置都会覆盖这里的配置-->
<pluginManagement>
<!--使用的插件列表 。-->
<plugins>
<plugin>
<!--在构建生命周期中执行一组目标的配置。每个目标可能有不同的配置。-->
<executions>
<!--execution元素包含了插件执行需要的信息-->
<execution>
<!--绑定了目标的构建生命周期阶段,如果省略,目标会被绑定到源数据里配置的默认阶段-->
<phase/>
<!--配置的执行目标-->
<goals/>
<!--配置是否被传播到子POM-->
<inherited/>
<!--作为DOM对象的配置-->
<configuration/>
</execution>
</executions>
<!--项目引入插件所需要的额外依赖-->
<dependencies>
<!--参见dependencies/dependency元素-->
<dependency>
......
</dependency>
</dependencies>
<!--任何配置是否被传播到子项目-->
<inherited/>
<!--作为DOM对象的配置-->
<configuration/>
</plugin>
</plugins>
</pluginManagement>
<!--使用的插件列表-->
<plugins>
</pluginManagement>