POM 是指 Project Object Model。POM 是一個(gè) xml,在 Maven 里為pom.xml。是 Maven 工作的基礎(chǔ),在執(zhí)行 task 或者 goal 時(shí),Maven 會(huì)去項(xiàng)目根目錄下讀取 pom.xml 獲得需要的配置信息。
POM 文件中包含了項(xiàng)目的信息和 maven build 項(xiàng)目所需的配置信息,通常有項(xiàng)目信息(如版本、成員)、項(xiàng)目的依賴(lài)、插件和 goal、build 選項(xiàng)等。
POM 是可以繼承的,通常對(duì)于一個(gè)大型的項(xiàng)目或是多個(gè) module 的情況,子模塊的 POM 需要指定父模塊的 POM。
可以參照 maven 官網(wǎng)上的文檔

project:POM 文件的頂級(jí)元素; 任何你想 build 的事物,Maven 都會(huì)把它們當(dāng)作是一個(gè)Project;這些 Project 被定義為 POM(Project Object Model);一個(gè) Project 可以依賴(lài)其他的 project,一個(gè) project 也可以有多個(gè)子 project 組成
modelVersion:所使用的 object model 版本,為了確保穩(wěn)定的使用,這個(gè)元素是強(qiáng)制性的。除非 maven開(kāi)發(fā)者升級(jí)模板,否則不需要修改
groupId:是項(xiàng)目創(chuàng)建團(tuán)體或項(xiàng)目的唯一標(biāo)志符,通常是域名倒寫(xiě)如:com.bjpowernode 或者 com.bjpowernode.p2p
artifactId:是項(xiàng)目 artifact 唯一的基地址名,通常指的是項(xiàng)目名或者模塊名如:p2p 或者 dataservice
version:artifact 的版本,通常能看見(jiàn)為類(lèi)似 0.0.1-SNAPSHOT,其中 SNAPSHOT 表示項(xiàng)目開(kāi)發(fā)中,為開(kāi)發(fā)版本
packaging:artifact 打包的方式,如 jar、war、ear 等等。默認(rèn)為 jar。這個(gè)不僅表示項(xiàng)目最終產(chǎn)生何種后綴的文件,也表示 build 過(guò)程使用什么樣的 lifecycle。
name:表示項(xiàng)目的展現(xiàn)名,在 maven 生成的文檔中使用
url:表示項(xiàng)目的地址,在 maven 生成的文檔中使用,通常不用
description:表示項(xiàng)目的描述,在 maven 生成的文檔中使用
dependencies:表示依賴(lài),在子節(jié)點(diǎn) dependencies 中添加具體依賴(lài)的 groupId、artifactId 和 version,Maven在搭建工程時(shí)主要是編寫(xiě)依賴(lài)。編寫(xiě)依賴(lài)就是從官網(wǎng)上復(fù)制
build:表示 build 配置
parent:表示父 POM