POM
Maven项目,依赖,构建配置,以及构件:所有这些都是要建模和表述的对象。这些对象通过一个名为项目对象模型(Project Object Model,POM)的XML文件描述。
POM包含四类描述和配置:
项目总体信息
它包含一个项目的名称,项目的URL,发起组织,以及项目的开发贡献者列表和许可证。
构建设置
自定义Maven构建的默认行为。可以更改源码和测试代码的位置,可以添加新的插件,可以将插件目标绑定到生命周期,还可以定义站点生成参数。
构建环境
构建环境包含了一些能在不同使用环境中,激活的profile。
POM关系
一个项目甚好孤立存在;它会以来于其他项目,可能从父项目继承POM设置,它要定义自身的坐标,可能还会包含子模块。
超级POM
所有的Maven项目的POM都扩展自超级POM。超级POM定义了一组被所有项目共享的默认设置。
在Maven 2.xxx版本中,比如maven-2.0.9-uber.jar,打开此Jar文件后,在包包org.apache.maven.project下会有pom-4.0.0.xml的文件,但是到了3.xxx版本之后在:Maven安装目录下的:/lib/maven-model-builder-version.jar中 \org\apache\maven\mode目录中的pom-4.0.0.xml。
这个超级POM定义了一些由所有项目继承的标准配置变量。这些变量的简单解释:
默认的超级POM定义了一个单独的远程Maven仓库,ID为central。是所有Maven客户端默认配置的访问的中央Maven仓库。该配置可以通过一个自定义的settings.xml文件来覆盖。注意这个默认的超级POM关闭了从中央Maven仓库此案在snapshot构件的功能。如果需要使用一个snapshot仓库,你就要在你的pom.xml或者settings.xml中自定义仓库设置。